2008-11-19 9 views
6

Jak widać here i here Nie jestem dobrym przyjacielem SelectList asp.net MVC's.
Tym razem zastanawiam się, jak policzyć przedmioty w nim. Chcę wyświetlić etykietę zamiast menu rozwijanego, jeśli możliwe pozycje nie dają żadnego wyboru (items.count < 2).Licznik elementów listy wyboru (liczba IEnumerable)

--EDIT--

Chociaż odpowiedź będzie prawdopodobnie działa również łatwe do zrobienia jest zadzwonić

.GetListItems().Count() 

Wyłącza każdy leniwy pobierania trzeba, ale ponieważ są one i tak będzie w rozwijanym menu, nie sądzę, że powinien to być problem.

+0

Wygląda na to, że jest nieaktualny. W wersji 1.0 MVC to nie działa. Intellisense mówi, że SelectList jest wciąż IEnumerable, ale metoda GetListItems() nie jest dostępna. –

+0

Rzeczywiście jest to nieaktualne. Co więcej, teraz przekazuję niezliczoną liczbę do widoku i tworzę listę SelectList na miejscu. To wydaje mi się lepsze, ponieważ kontroler nie powinien zawracać sobie głowy listą wyboru, ponieważ jest to konkretny typ danych. –

Odpowiedz

3

Linq nie posiada metodę rozszerzenia dla IEnumerable nazwie count(). Count() jest zaimplementowany dla IEnumerable, co stanowi dużą różnicę.

+0

Ziemniaki, ziemniaki - to wciąż metoda rozszerzenia. Chyba że odnosisz się do innego rodzaju wdrożenia, w którym to przypadku chciałbym się kształcić. – Suncat2000