Tengo una lista de objetos poblados de una base de datos. Necesito mostrar un mensaje de error si la lista está vacía y mostrar una vista de cuadrícula de lo contrario.
¿Cómo verifico si a List<T>
está vacío en C #?
c#
list
gridview
isnullorempty
lakshganga
fuente
fuente
if (list.Count == 0) { /* ... */ }
?if (!list.Any())
C# list isempty
para el que está completamente en el punto. Creo que las partes irrelevantes de la pregunta deberían eliminarse y votaré para reabrir.Respuestas:
Por qué no...
También
GridView
tiene unEmptyDataTemplate
que se muestra si la fuente de datos está vacía. Este es un enfoque en ASP.NET:fuente
list == null
primero?Si la implementación de la lista que está usando es
IEnumerable<T>
y Linq es una opción, puede usarAny
:De lo contrario, generalmente tiene una propiedad
Length
oCount
en matrices y tipos de colección, respectivamente.fuente
.Count
o.Length
,List
¿qué podría.Any()
hacer para ser más rápido que verificar la propiedad de la colección que realiza un seguimiento de la longitud o recuento actual? Si solo tiene un enumerador, entonces,.Any()
por supuesto , es más rápido que.Count() > 0
. Ver también: stackoverflow.com/questions/305092/… o stackoverflow.com/questions/5741617/…Any
verifica para validar que recuperar el recuento es barato antes de probarlo, en los casos en los que tenga unIListProvider<>
que no rastrea el recuento, se enumerará una vez.Puede hacer que su cuadrícula de datos sea visible falsa y hacerla visible en la sección else.
fuente
O(1)
operación y no se realizan iteraciones para contar elementos. VerList<T>.Count
.Any()
expresar mejor la intención, además de ser más eficaz cuando no sabes que tienes unaList<T>
.¿Qué pasa con el uso de la
Count
propiedad?fuente
null
. En su lugar, debería ser una colección vacía.Deberías usar una
IF
declaración simplefuente
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"); } } }
fuente
gridview en sí tiene un método que verifica si la fuente de datos a la que lo vincula está vacía, le permite mostrar algo más.
fuente
Si está usando una vista de cuadrícula, use la plantilla de datos vacía: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.emptydatatemplate.aspx
fuente