首页 文章

检查C#中的列表是否为空[关闭]

提问于
浏览
61

我有一个从数据库填充的对象列表 . 如果列表为空,我需要显示错误消息,否则显示网格视图 .

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

8 回答

  • 3

    为什么不...

    bool isEmpty = !list.Any();
    if(isEmpty)
    {
        // error message
    }
    else
    {
        // show grid
    }
    

    如果数据源为空, GridView 也会显示EmptyDataTemplate . 这是ASP.NET中的一种方法:

    <emptydatarowstyle backcolor="LightBlue" forecolor="Red"/>
    
    <emptydatatemplate>
    
      <asp:image id="NoDataErrorImg"
        imageurl="~/images/NoDataError.jpg" runat="server"/>
    
        No Data Found!  
    
    </emptydatatemplate>
    
  • 19

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

    if (!list.Any()) {
    
    }
    

    否则,您通常分别在数组和集合类型上具有 LengthCount 属性 .

  • 11

    gridview本身有一个方法,检查你绑定它的数据源是否为空,它允许你显示其他东西 .

  • 5
    If (list.Count==0){
          //you can show your error messages here
        } else {
          //here comes your datagridview databind 
        }
    

    您可以使您的数据网格显示为false,并使其在else部分可见 .

  • 50

    你应该使用一个简单的 IF 语句

    List<String> data = GetData();
    
    if (data.Count == 0)
        throw new Exception("Data Empty!");
    
    PopulateGrid();
    ShowGrid();
    
  • 0

    如果您使用的是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>
    
  • 85

    那么使用Count()方法呢 .

    if(listOfObjects.Count() != 0)
     {
         ShowGrid();
         HideError();
     }
     else
     {
         HideGrid();
         ShowError();
     }
    
  • 8
    var dataSource = lst!=null && lst.Any() ? lst : null;
    // bind dataSource to gird source
    

相关问题