这个LINQ语句会返回null吗?

本文关键字:null 返回 LINQ 语句 这个 | 更新日期: 2023-09-27 18:09:44

给定以下c#代码:

List<string> source = new List<string>();
IEnumerable<string> values = from value in source select value;

values永远是空的还是它总是返回一个空序列?

这个LINQ语句会返回null吗?

是的,它可以返回null,如果你有一个扩展方法定义在你的代码像下面的地方:

public static IEnumerable<string> Select(this List<string> list, Func<string, string> action)
{
    return null;
}

否则没有;它将返回一个空序列。

values序列本身永远不会为空。如果source为空,则values将是一个不包含任何项的空序列。

(当然,序列中的一个或多个string项可能为空。)

Linq返回空序列如果要测试序列是否为空,请使用.Any()方法