У меня есть список объектов, заполненных из базы данных. Мне нужно отобразить сообщение об ошибке, если список пуст, и в противном случае отобразить представление сетки.
Как проверить List<T>
, пуст ли в C #?
c#
list
gridview
isnullorempty
lakshganga
источник
источник
if (list.Count == 0) { /* ... */ }
?if (!list.Any())
C# list isempty
для которого он полностью соответствует действительности. Я думаю, что не относящиеся к делу части вопроса следует отредактировать, и я голосую за повторное открытие.Ответы:
Почему нет...
Также
GridView
есть,EmptyDataTemplate
который отображается, если источник данных пуст. Это подход в ASP.NET:источник
list == null
сначала проверить, действительно ли ?Если вы используете реализацию списка,
IEnumerable<T>
а Linq - вариант, вы можете использоватьAny
:В противном случае у вас обычно есть свойство
Length
илиCount
для массивов и типов коллекций соответственно.источник
.Count
или, что можно сделать быстрее, чем проверка свойства коллекции, которая отслеживает текущую длину или количество? Если у вас есть только Enumerator, то, конечно, быстрее, чем . См. Также: stackoverflow.com/questions/305092/… или stackoverflow.com/questions/5741617/….Length
List
.Any()
.Any()
.Count() > 0
Any
проверяет, что получение счетчикаIListProvider<>
обходится дешево, прежде чем тестировать его, в тех случаях, когда у вас есть объект , который не отслеживает счетчик, вместо этого он будет перечисляться один раз.Вы можете сделать свой datagrid видимым false и сделать его видимым в разделе else.
источник
O(1)
операция, и для подсчета элементов не выполняется итераций. СмотритеList<T>.Count
.Any()
лучше выражать намерения, а также быть более эффективным, когда вы не знаете, что у вас есть реальныйList<T>
.Что насчет использования
Count
собственности.источник
null
. Вместо этого это должна быть пустая коллекция.Вы должны использовать простую
IF
инструкциюисточник
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"); } } }
источник
В самом gridview есть метод, который проверяет, является ли источник данных, к которому вы его привязываете, пустым, он позволяет отображать что-то еще.
источник
Если вы используете gridview, используйте пустой шаблон данных: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.emptydatatemplate.aspx
источник