c#null和Any()检查的快捷方式

本文关键字:检查 快捷方式 Any c#null | 更新日期: 2024-10-19 10:38:37

在C#中,我经常要做这个

if(x.Items!=null && x.Items.Any())
{ .... }

收藏有捷径吗?

c#null和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);
}