2008-11-19 8 views
6

Comme vous pouvez le voir here et here Je ne suis pas un bon ami de SelectList d'asp.net MVC.
Cette fois, je me demande comment compter les objets dedans. Je veux montrer une étiquette au lieu d'une liste déroulante si les éléments possibles n'offrent aucun choix (items.count < 2).Compter les éléments de la liste de sélection (compter IEnumerable)

--EDIT--

Bien que la réponse de Will fonctionne probablement aussi, la façon facile d'aller est d'appeler

.GetListItems().Count() 

Cela désactive tout paresseux que vous auriez aller chercher, mais comme ils sont va être dans une liste déroulante de toute façon, je ne pense pas que cela devrait être un problème.

+0

Cette appellation n'a pas été retirée. Dans MVC version 1.0 cela ne fonctionne pas. Intellisense indique que SelectList est toujours un IEnumerable mais la méthode GetListItems() n'est pas disponible. –

+0

En effet, c'est démodé. En outre, je passe maintenant le Ienumerable sur la vue et créer la SelectList sur place. Cela me semble mieux parce que le contrôleur ne devrait pas déranger avec selectlist car c'est un type de données spécifique à la vue. –

Répondre

3

Linq ne dispose pas d'une méthode d'extension pour IEnumerable appelé Count(). Count() est implémenté pour IEnumerable, ce qui est une grande différence.

+0

Pomme de terre, pomme de terre - c'est toujours une méthode d'extension. À moins que vous ne parliez d'un autre type de mise en œuvre, auquel cas j'aimerais être éduqué. – Suncat2000

Questions connexes