Eu tenho uma lista de objetos preenchidos a partir de um banco de dados. Preciso exibir uma mensagem de erro se a lista estiver vazia e exibir uma exibição em grade caso contrário.
Como verifico se a List<T>
está vazio em C #?
c#
list
gridview
isnullorempty
lakshganga
fonte
fonte
if (list.Count == 0) { /* ... */ }
?if (!list.Any())
C# list isempty
para o qual está totalmente correto. Acho que partes irrelevantes da pergunta devem ser editadas e estou votando para reabrir.Respostas:
Por que não...
Também
GridView
tem umEmptyDataTemplate
que é mostrado se a fonte de dados estiver vazia. Esta é uma abordagem no ASP.NET:fonte
list == null
primeiro?Se a implementação da lista que você está usando for
IEnumerable<T>
e Linq for uma opção, você poderá usarAny
:Caso contrário, você geralmente tem uma propriedade
Length
ouCount
em matrizes e tipos de coleção, respectivamente.fonte
.Count
ou.Length
como oList
que poderia.Any()
ser mais rápido do que verificar a propriedade da coleção que controla o tamanho ou a contagem atual? Se você possui apenas um enumerador,.Any()
é claro que é mais rápido que.Count() > 0
. Consulte também: stackoverflow.com/questions/305092/… ou stackoverflow.com/questions/5741617/…Any
verifica se a recuperação da contagem é barata antes de testá-la; nos casos em que você tiver umaIListProvider<>
que não rastreie a contagem, ela será enumerada uma vez.Você pode tornar seu DataGrid visível falso e torná-lo visível na seção else.
fonte
O(1)
operação e não há iterações feitas para contar elementos. VejaList<T>.Count
.Any()
expressar melhor a intenção, além de ter um desempenho melhor quando você não sabe que tem um currículo realList<T>
.Que tal usar a
Count
propriedade.fonte
null
. Em vez disso, deve ser uma coleção vazia.Você deve usar uma
IF
declaração simplesfonte
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"); } } }
fonte
O gridview em si possui um método que verifica se a fonte de dados à qual você está vinculando está vazia, permitindo exibir outra coisa.
fonte
Se você estiver usando um gridview, use o modelo de dados vazio: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.emptydatatemplate.aspx
fonte