Vi è mai capitato di fare una ricerca (selezione) all'interno di una lista ? Credo spesso. Se ad esempio è necessario estrarre tutte le persone con un'età compresa fra due valori, basta ciclare (for oppure foreach) nella lista e crearne una nuova con persone che soddisfano i requisiti.

Nel nuovo framework sarà possibile definire un predicato con un metodo anonimo (questo ultimo aspetto non è obbligatorio):

public List<Person> FindByAgeRange(int startAge, int endAge)
{
  return this.FindAll(delegate(Person person) { return (person.Age > startAge && person.Age < endAge); });
}