如何在firstordefault()之前检查列表为null或为空

时间:2014-06-12 06:46:59

标签: c# linq

我想在List<Product> _product之前检查firstordefault()结果为空或为空 这是代码。

product = GetDetails(new List<IProduct> { product }, DetailsRS).FirstOrDefault()

任何人都可以建议如何解决此问题。

1 个答案:

答案 0 :(得分:6)

如果列表为空并不重要 - FirstOrDefault完全没问题。有趣的问题是它是否 null 。当我们等待C#6(希望在这里提供一些伏都教)时,我们可以使用:

var foo = list == null ? null : list.FirstOrDefault();

您甚至可以为此创建一种新的扩展方法,即

var foo = list.NullSafeFirstOrDefault();

使用:

public static T NullSafeFirstOrDefault<T>(this IEnumerable<T> source) {
    return source == null ? default(T) : source.FirstOrDefault();
}