我有一个从数据库填充的对象列表 . 如果列表为空,我需要显示错误消息,否则显示网格视图 .
如何检查C#中 List<T> 是否为空?
List<T>
为什么不...
bool isEmpty = !list.Any(); if(isEmpty) { // error message } else { // show grid }
如果数据源为空, GridView 也会显示EmptyDataTemplate . 这是ASP.NET中的一种方法:
GridView
<emptydatarowstyle backcolor="LightBlue" forecolor="Red"/> <emptydatatemplate> <asp:image id="NoDataErrorImg" imageurl="~/images/NoDataError.jpg" runat="server"/> No Data Found! </emptydatatemplate>
如果您使用的列表实现是 IEnumerable<T> 并且Linq是一个选项,则可以使用 Any :
IEnumerable<T>
Any
if (!list.Any()) { }
否则,您通常分别在数组和集合类型上具有 Length 或 Count 属性 .
Length
Count
gridview本身有一个方法,检查你绑定它的数据源是否为空,它允许你显示其他东西 .
If (list.Count==0){ //you can show your error messages here } else { //here comes your datagridview databind }
您可以使您的数据网格显示为false,并使其在else部分可见 .
你应该使用一个简单的 IF 语句
IF
List<String> data = GetData(); if (data.Count == 0) throw new Exception("Data Empty!"); PopulateGrid(); ShowGrid();
如果您使用的是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>
那么使用Count()方法呢 .
if(listOfObjects.Count() != 0) { ShowGrid(); HideError(); } else { HideGrid(); ShowError(); }
var dataSource = lst!=null && lst.Any() ? lst : null; // bind dataSource to gird source
8 回答
为什么不...
如果数据源为空,
GridView
也会显示EmptyDataTemplate . 这是ASP.NET中的一种方法:如果您使用的列表实现是
IEnumerable<T>
并且Linq是一个选项,则可以使用Any
:否则,您通常分别在数组和集合类型上具有
Length
或Count
属性 .gridview本身有一个方法,检查你绑定它的数据源是否为空,它允许你显示其他东西 .
您可以使您的数据网格显示为false,并使其在else部分可见 .
你应该使用一个简单的
IF
语句如果您使用的是gridview,请使用空数据模板:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.emptydatatemplate.aspx
那么使用Count()方法呢 .