【发布时间】:2020-07-22 00:43:37
【问题描述】:
我有一个返回IEnumerable<Data> 的方法,我想检查IEnumerable 是否为空/空。我做了一些研究,看起来我们可以使用它的 Any 方法,但在我的代码中我没有看到任何 Any 方法,这意味着我正在运行旧版本的 .Net?
现在我使用上面的方法如下-
private bool Process()
{
IEnumerable<Data> dataValue = GetData();
// check if dataValue is null or empty
if(dataValue != null) {
// process entry
}
}
如何检查IEnumerable 在我的情况下是空还是空?
更新
private bool Process()
{
IEnumerable<Data> dataValue = GetData();
if(dataValue = null || !dataValue.Any()) {
return false;
}
foreach (var x in dataValue)
{
// iterating over dataValue here and extracting each field of Data class
}
}
【问题讨论】:
-
将
using System.Linq;添加到.cs文件的顶部。 -
null与being-empty 不同,如果IEnumerable<T>是null,.Any()将抛出ArgumentNullException:stackoverflow.com/questions/11538243/… - 你需要使用Elvis Operator,例如:Boolean hasAny = enumerable?.Any() ?? false;. -
或者创建你自己的扩展
IsNullOrEmpty。
标签: c# ienumerable