如何在firstordefault()之前检查列表是否为空

本文关键字:列表 检查 是否 firstordefault | 更新日期: 2023-09-27 18:08:11

我想检查List<Product> _product结果在firstordefault()之前为null或空代码如下:

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

有谁能建议如何解决这个问题?

如何在firstordefault()之前检查列表是否为空

如果列表为空 - 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();
} 

简体:

var foo = list?.FirstOrDefault();