Лучший способ получить количество IEnumerable<T>
Решение зависит от того, почему visual-c# вы не хотите перечислять csharp всю коллекцию.
Если это связано c# с тем, что перечисление коллекции linq-query-syntax может быть медленным, то c# нет более быстрого решения. Возможно, вы linq-query-syntax захотите рассмотреть возможность csharp использования ICollection, если .cs-file это возможно. Если перечисление linq-query-syntax не очень медленное (например, оно c#.net считывает элементы с диска), скорость linq не должна быть проблемой.
Если c-sharp это связано с тем, что для .cs-file перечисления коллекции потребуется .cs-file больше кода, то он уже написан linq для вас в виде метода расширения c#.net .Count(). Просто используйте c#-language MyEnumerable.Count().
Если c-sharp это связано с тем, что вы linq-query-syntax хотите иметь возможность language-integrated-query перечислить коллекцию после csharp подсчета, тогда метод расширения c# .Count() позволяет это сделать. Вы c#.net даже можете вызвать .Count() для linq коллекции, которую вы в процессе linq перечисления, и она продолжится visual-c# с того места, где она была c#-language до подсчета. Например:
foreach (int item in Series.Generate(5))
{
Console.WriteLine(item + "(" + myEnumerable.Count() + ")");
}
даст c-sharp результаты
0 (5)
1 (5)
2 (5)
3 visual-c# (5)
4 (5)
Если это связано language-integrated-query с тем, что перечисление имеет visual-c# побочные эффекты (например, запись c# на диск/консоль) или зависит csharp от переменных, которые могут language-integrated-query изменяться между подсчетом c-sharp и перечислением (например, чтение c#-language с диска) [N.B. Если возможно, я c#.net бы предложил переосмыслить c#.net архитектуру, так как это c#.net может вызвать много проблем], тогда .cs-file одна из возможностей рассмотреть csharp — это чтение перечисления c#-language в прерывистое хранилище. Например:
List seriesAsList = Series.Generate(5).ToList();
Все c-sharp вышеперечисленное предполагает, что c#.net вы не можете изменить тип visual-c# (т. е. он возвращается из linq библиотеки, которой вы не c#.net владеете). Если возможно, вы c# можете рассмотреть возможность linq-query-syntax использования ICollection visual-c# или IList (ICollection имеет c-sharp более широкую область действия, чем c# IList), у которых есть свойство .cs-file Count.
c#
linq
Лучший способ получить количество IEnumerable<T>
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.