Y a-t-il une raison pour la réutilisation de la variable dans foreach

Mots clés : c#foreachlambdascopeanonymous-methodsc#

meilleur 3 Réponses Y a-t-il une raison pour la réutilisation de la variable dans foreach

vote vote

92

foreach (var s in strings) {     var s_for_closure = s;     query = query.Where(i => i.Prop == s_for_closure); // access to modified closure 
vote vote

82

foreach (var s in strings)     query = query.Where(i => i.Prop == s); // access to modified closure 
foreach (var s in strings) {     string search = s;     query = query.Where(i => i.Prop == search); // New definition ensures unique per iteration. }         
vote vote

73

foreach (V v in x) embedded-statement 
{   E e = ((C)(x)).GetEnumerator();   try {       while (e.MoveNext()) {           V v = (V)(T)e.Current;           embedded-statement       }   }   finally {       … // Dispose e   } } 
int[] values = { 7, 9, 13 }; Action f = null; foreach (var value in values) {     if (f == null) f = () => Console.WriteLine("First value: " + value); } f(); 

Questions similaires