我有一个通用的列表对象。我需要检查列表是否为空。
如何在 C # 中检查 List<T>是否为空?
List<T>
你可以使用 Enumerable.Any:
Enumerable.Any
bool isEmpty = !list.Any(); if(isEmpty) { // ... }
如果列表可以是 null,你可以使用:
null
bool isNullOrEmpty = list?.Any() != true;
使用 Count属性怎么样。
Count
if(listOfObjects.Count != 0) { ShowGrid(); HideError(); } else { HideGrid(); ShowError(); }
如果您正在使用的列表实现是 IEnumerable<T>,并且 Linq 是一个选项,那么您可以使用 Any:
IEnumerable<T>
Any
if (!list.Any()) { }
否则,数组和集合类型通常分别具有 Length或 Count属性。
Length
Gridview 本身有一个方法来检查您绑定到的数据源是否为空,它允许您显示其他内容。
如果您使用的是网格视图,那么使用空数据模板: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.emptydatatemplate.aspx
<asp:gridview id="CustomersGridView" datasourceid="CustomersSqlDataSource" autogeneratecolumns="true" runat="server"> <emptydatarowstyle backcolor="LightBlue" forecolor="Red"/> <emptydatatemplate> <asp:image id="NoDataImage" imageurl="~/images/Image.jpg" alternatetext="No Image" runat="server"/> No Data Found. </emptydatatemplate> </asp:gridview>
If (list.Count==0){ //you can show your error messages here } else { //here comes your datagridview databind }
您可以将 datagrid 设置为可见 false,并将其设置为在 else 部分中可见。
您应该使用一个简单的 IF语句
IF
List<String> data = GetData(); if (data.Count == 0) throw new Exception("Data Empty!"); PopulateGrid(); ShowGrid();
var dataSource = lst!=null && lst.Any() ? lst : null; // bind dataSource to gird source