我喜欢绳子。IsNullOrEmpty方法。我想有一些东西,将允许相同的功能IEnumerable。有这样的东西吗?也许是一些收集助手类?我问的原因是,在if语句中,如果模式是(mylist != null && mylist. any()),代码看起来很混乱。使用Foo.IsAny(myList)会干净得多。
这篇文章没有给出答案:IEnumerable是空的?
我喜欢绳子。IsNullOrEmpty方法。我想有一些东西,将允许相同的功能IEnumerable。有这样的东西吗?也许是一些收集助手类?我问的原因是,在if语句中,如果模式是(mylist != null && mylist. any()),代码看起来很混乱。使用Foo.IsAny(myList)会干净得多。
这篇文章没有给出答案:IEnumerable是空的?
当前回答
它为null将返回true
enter public static bool IsNullOrEmpty<T>(this IEnumerable<T> enumerable)
{
try
{
return enumerable?.Any() != true;
}
catch (Exception)
{
return true;
}
}
代码
其他回答
我使用
list.Where (r=>r.value == value).DefaultIfEmpty().First()
如果不匹配,结果将为空,否则返回其中一个对象
如果您想要列表,我相信离开First()或调用ToList()将提供列表或null。
我使用Bool IsCollectionNullOrEmpty = !(Collection?. any ()??false);。希望这能有所帮助。
分解:
. any()如果Collection为空将返回null,如果Collection为空则返回false。
收集? .Any () ?如果Collection为空,则返回false;如果Collection为空,则返回false。
它的补将得到IsEmptyOrNull。
当它是关于引用(可空)类型的,并且项中不期望有空项时,可以使用这一行进行验证
myCollection?.FirstOrDefault() == null
我用的是这个:
public static bool IsNotEmpty(this ICollection elements)
{
return elements != null && elements.Count > 0;
}
埃杰姆:
List<string> Things = null;
if (Things.IsNotEmpty())
{
//replaces -> if (Things != null && Things.Count > 0)
}
另一个最佳解决方案如下检查是否为空?
for(var item in listEnumerable)
{
var count=item.Length;
if(count>0)
{
// not empty or null
}
else
{
// empty
}
}