在 C # 中检查 list 是否为空

我有一个通用的列表对象。我需要检查列表是否为空。

如何在 C # 中检查 List<T>是否为空?

472273 次浏览

你可以使用 Enumerable.Any:

bool isEmpty = !list.Any();
if(isEmpty)
{
// ...
}

如果列表可以是 null,你可以使用:

bool isNullOrEmpty = list?.Any() != true;

使用 Count属性怎么样。

 if(listOfObjects.Count != 0)
{
ShowGrid();
HideError();
}
else
{
HideGrid();
ShowError();
}

如果您正在使用的列表实现是 IEnumerable<T>,并且 Linq 是一个选项,那么您可以使用 Any:

if (!list.Any()) {


}

否则,数组和集合类型通常分别具有 LengthCount属性。

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语句

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