c#null和Any()检查的快捷方式
本文关键字:检查 快捷方式 Any c#null | 更新日期: 2024-10-19 10:38:37
在C#中,我经常要做这个
if(x.Items!=null && x.Items.Any())
{ .... }
收藏有捷径吗?
在C#6中,您将能够编写:
if (x.Items?.Any() == true)
在此之前,您可以随时编写自己的扩展方法:
public static bool NotNullOrEmpty<T>(this IEnumerable<T> source)
{
return source != null && source.Any();
}
然后只需使用:
if (x.NotNullOrEmpty())
更改名称以适应您的口味,例如NullSafeAny
可能更符合您的喜好,但我肯定会在名称中明确表示,即使x
为空,这也是一个有效的调用。
我还对列表中的项进行了检查,以确保列表不只是包含所有空对象;以便增强Jon Skeet的回答:
public static bool NotNullOrEmpty<T>(this IEnumerable<T> source)
{
return source != null && !source.All(x => x == null);
}