podawany był zainicjowany IEnumerable
:Jak mogę skutecznie określić, czy IEnumerable ma więcej niż jeden element?
IEnumerable<T> enumerable;
chciałbym ustalić, czy ma więcej niż jeden element. Myślę, że najbardziej oczywistym sposobem na to jest:
enumerable.Count() > 1
Uważam jednak, Count()
wylicza kolekcję cały, co jest konieczne w tym przypadku zastosowania. Na przykład, jeśli kolekcja zawiera bardzo dużą liczbę elementów lub dostarcza jej dane z zewnętrznego źródła, może to być dość nieekonomiczne pod względem wydajności.
Jak mogę to zrobić bez wyliczania więcej niż 2 elementów?
Jeśli musisz na to liczyć, to zrób coś, lepiej byłoby zmusić go do oceny na liście lub innej kolekcji. – devshorts
@devshorts, by * count on it *, masz na myśli * zależy od tego działa * lub * używa 'Count()' method *? – Sam
Chodzi mi o to, że jeśli chcesz dowiedzieć się, ile elementów na nim jest, to zrób coś w zależności od tego, możesz równie dobrze to ocenić. 'Count' oceni ją raz, a następnie, jeśli ją powtórzysz, musisz wszystko jeszcze raz ocenić. To samo z każdą inną metodą 'IEnumerable', taką jak' Take' lub 'Skip'. To naprawdę zależy od danych. – devshorts