我创建了一个扩展方法(天哪,我希望 Java 有这些)IsEmpty
,如下所示:
public static bool IsEmpty(this DataRow row)
{
return row == null || row.ItemArray.All(i => i is DBNull);
}
这里的其他答案是正确的。我只是觉得我对 Linq to Objects 的简洁使用很简洁。顺便说一句,这在与 Excel 解析结合使用时非常有用,因为用户可能会在页面下方(数千行)添加一行,而不管这如何影响解析数据。
在同一个类中,我放置了我认为有用的任何其他帮助程序,例如解析器,以便如果字段包含您知道应该是数字的文本,您可以流利地解析它。给刚接触这个想法的人的小提示。(真的有人吗?不!)
考虑到这一点,这是一个增强版本:
public static bool IsEmpty(this DataRow row)
{
return row == null || row.ItemArray.All(i => i.IsNullEquivalent());
}
public static bool IsNullEquivalent(this object value)
{
return value == null
|| value is DBNull
|| string.IsNullOrWhiteSpace(value.ToString());
}
现在你有了另一个有用的助手,IsNullEquivalent
它可以在这个上下文中使用,也可以在任何其他上下文中使用。您可以扩展它以包含类似的内容,"n/a"
或者"TBD"
如果您知道您的数据有这样的占位符。