De ce vedem această interfață IEnumerabilă? Poate ni se pare uimitoare, în programare generală, practic nu ne putem gândi să o folosim, dar, după cum spune vorba, existența este adevărul, deci ce lucruri minunate ne poate aduce? Pentru a-l înțelege, să aruncăm o privire asupra definiției sale! Pe MSDN, după cum se spune, este un enum public care suportă iterații simple pe colecții non-generice. Cu alte cuvinte, pentru toate traversările de array, de la IEnumerable, putem folosi această caracteristică pentru a defini o metodă comună care poate traversa array-urile. De exemplu: public static void Print(IEnumerable myList) { int i = 0; foreach (Obiect obj în myList) { dacă (obj este Student)// Aceasta este judecata de tip, unde studentul este o clasă sau structură { Student s=(Student)obj; Console.WriteLine("\t[{0}]:\t{1}", i++, s.Sname); } dacă (obj este int) { Console.WriteLine("INT:{0}",obj); } } Console.WriteLine(); } Mai sus, putem efectua mai multe judecăți if în foreach pentru a efectua operații corespunzătoare. O altă utilizare a IEnumerable este în generice. Interogarea într-un tablou cu o expresie lamda este următoarea: <string> Fructe de listă = nouă<string> Listă { "măr", "fructul pasiunii", "banană", "mango", "portocală", "afine", "strugure", "căpșuni" }; <string> Interogare pe listă = fructe. Unde (fruct => fruct. Lungimea < 6). ToList(); Adică<string> interogare numerabilă = fructe. Unde (fruct => fruct. Lungimea < 6); foreach (șiruri de fructe în interogare) Console.WriteLine (fruct); În ceea ce privește cele două exemple de mai sus, cred că sunt încă folosite frecvent în programarea obișnuită, așa că mai bine încercăm... |