In C#, what is the best way to test if a dataset is empty?

后端 未结 6 771
無奈伤痛
無奈伤痛 2021-01-12 13:59

I know you can look at the row.count or tables.count, but are there other ways to tell if a dataset is empty?

6条回答
  •  有刺的猬
    2021-01-12 14:42

    I would suggest something like:-

      bool nonEmptyDataSet = dataSet != null && 
        (from DataTable t in dataSet.Tables where t.Rows.Count > 0 select t).Any();
    

    Edits: I have significantly cleaned up the code after due consideration, I think this is much cleaner. Many thanks to Keith for the inspiration regarding the use of .Any().

    In line with Keith's suggestion, here is an extension method version of this approach:-

    public static class ExtensionMethods {
      public static bool IsEmpty(this DataSet dataSet) {
        return dataSet == null ||
          !(from DataTable t in dataSet.Tables where t.Rows.Count > 0 select t).Any();
        }
      }
    

    Note, as Keith rightly corrected me on in the comments of his post, this method will work even when the data set is null.

提交回复
热议问题