W poniższym przykładzie, w jaki sposób można łatwo przekonwertować eventScores
na List<int>
, aby można było użyć go jako parametru dla prettyPrint
?Jak przekonwertować System.Linq.Enumerable.WhereListIterator <int> na listę <int>?
Console.WriteLine("Example of LINQ's Where:");
List<int> scores = new List<int> { 1,2,3,4,5,6,7,8 };
var evenScores = scores.Where(i => i % 2 == 0);
Action<List<int>, string> prettyPrint = (list, title) =>
{
Console.WriteLine("*** {0} ***", title);
list.ForEach(i => Console.WriteLine(i));
};
scores.ForEach(i => Console.WriteLine(i));
prettyPrint(scores, "The Scores:");
foreach (int score in evenScores) { Console.WriteLine(score); }
pfft , powolny kod! i => (i & 1) == 0 – leppie
Pfft, mikrooptymalizacje nie są prowadzone przez profilowanie. Utworzenie iteratora i kopii na liście będzie setki razy wolniejsze niż jakiekolwiek oszczędności dokonane przez mikrooptymalizację matematyki. * Zoptymalizuj wolne rzeczy. * –