Beh l'esempio su msdn mi sembra abbastanza chiaro a dirti la verità. Praticamente ti devi scrivere una funzione di callback che prende in input una variabile del tipo della lista e nel caso quest'ultima corrisponde alle condizione di ricerca ritorna true altrimenti false.
Ti ho scritto un esempietto per mostrarti come funziona, inolte mi sono permesso di farti un paragone tra altri modi di cercare all'interno di una lista. L'uso di lamba expression è secondo me quello più elegante in questo caso.
codice:
using System;
using System.Collections.Generic;
using System.Linq;
namespace ProvaFindAll
{
class MainClass
{
public static void Main (string[] args)
{
List<int> listaInteri = new List<int>();
int i;
for(i = 0; i < 100; i++)
{
listaInteri.Add(i);
}
//Utilizzo di lamba expression
var listaMag10 = listaInteri.FindAll( num => num>10 );
StampaLista(listaMag10);
//Utilizzo di delegati
var listaPari = listaInteri.FindAll( NumPari);
StampaLista(listaPari);
//LINQ
var listaDispari = (from num in listaInteri
where num % 2 != 0
select num).ToList<int>();
StampaLista(listaDispari);
}
static void StampaLista(List<int> lista)
{
foreach(int n in lista)
{
Console.WriteLine(n);
}
}
static bool NumPari(int n)
{
if(n % 2 ==0)
return true;
return false;
}
}
}