Se sto spiegando la seguente funzione ForEach a qualcuno, è esso esatto dire che 2 # è il "metodo foreach LINQ" o è semplicemente un "List<T>
metodo di estensione" che non è ufficialmente associata con LINQ ?Quale parte del linguaggio C# è .ForEach()?
var youngCustomers = from c in customers
where c.Age < 30
select c;
//1. traditional foreach approach
foreach (var c in youngCustomers)
{
Console.WriteLine(c.Display());
}
//2. LINQ foreach approach?
youngCustomers.ToList().ForEach(c => Console.WriteLine(c.Display()));
Controlla questo post da Eric Lippert http://blogs.msdn.com/b/ericlippert/archive/2009/05/18/foreach-vs-foreach.aspx –
Vale la pena notare che il tuo n. 2 scorrerà attraverso il elementi due volte: una volta per creare l'elenco e una volta per il metodo ForEach.Se si desidera utilizzare tale stile di codice, che è perfettamente legittimo, è meglio scrivere il proprio metodo di estensione ForEach su IEnumerable. –