在C#中,测试数据集是否为空的最佳方法是什么?

RTi*_*ton 7 .net c#

我知道你可以查看row.count或tables.count,但还有其他方法来判断数据集是否为空?

ljs*_*ljs 17

我会建议像: -

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

编辑:经过充分考虑,我已经大大清理了代码,我认为这更清洁了.非常感谢Keith关于使用.Any()的灵感.

根据Keith的建议,这是这种方法的扩展方法版本: -

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();
    }
  }
Run Code Online (Sandbox Code Playgroud)

请注意,正如Keith在他的帖子的评论中正确地纠正了我,即使数据集为空,这个方法也能正常工作.


Joe*_*zer 5

怎么了?

(aDataSet.Tables.Count == 0)