J'ai une liste d'objets remplis à partir d'une base de données. J'ai besoin d'afficher un message d'erreur si la liste est vide et d'afficher une vue en grille dans le cas contraire.
Comment vérifier si a List<T>
est vide en C #?
c#
list
gridview
isnullorempty
lakshganga
la source
la source
if (list.Count == 0) { /* ... */ }
?if (!list.Any())
C# list isempty
pour lequel il est parfaitement pertinent. Je pense que les parties non pertinentes de la question devraient être supprimées, et je vote pour la réouverture.Réponses:
Pourquoi pas...
Le
GridView
a également unEmptyDataTemplate
qui est affiché si la source de données est vide. Il s'agit d'une approche dans ASP.NET:la source
list == null
abord?Si l'implémentation de liste que vous utilisez est
IEnumerable<T>
et que Linq est une option, vous pouvez utiliserAny
:Sinon, vous avez généralement une propriété
Length
ouCount
sur les tableaux et les types de collection respectivement.la source
.Count
ou.Length
comme avec,List
que pourriez.Any()
-vous faire pour être plus rapide que de vérifier la propriété de la collection qui garde la trace de la longueur ou du nombre actuel? Si vous n'avez qu'un Enumérateur, alors.Any()
est bien sûr plus rapide que.Count() > 0
. Voir aussi: stackoverflow.com/questions/305092/… ou stackoverflow.com/questions/5741617/…Any
vérifier que la récupération du compte est bon marché avant de le tester, dans les cas où vous avez unIListProvider<>
qui ne suit pas le compte, il énumérera une fois à la place.Vous pouvez rendre votre datagrid visible false et la rendre visible dans la section else.
la source
O(1)
opération et aucune itération n'est effectuée pour compter les éléments. VoirList<T>.Count
.Any()
exprimer l'intention, tout en étant plus performant lorsque vous ne savez pas que vous avez un réelList<T>
.Qu'en est-il de l'utilisation de la
Count
propriété.la source
null
. Ce devrait être une collection vide à la place.Vous devez utiliser une simple
IF
déclarationla source
using System; using System.Collections.Generic; public class Program { public static void Main() { List<string> stringList = null; if (stringList.Count == 0) { Console.WriteLine("no items in collection"); } } }
la source
gridview lui-même a une méthode qui vérifie si la source de données à laquelle vous la liez est vide, elle vous permet d'afficher autre chose.
la source
Si vous utilisez un gridview, utilisez le modèle de données vide: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.emptydatatemplate.aspx
la source