Linq Select投影无法应用于单个记录

时间:2016-07-19 03:05:51

标签: c# linq

如果它包含任何匹配的年份,我正在尝试从字符串数组返回年份。

GetYear()扩展方法如下:

string[] splitString = me.Split(' ');
var year = splitString.Select(x => x.GetYear()).FirstOrDefault(x => x > 0);

这有效

string[] splitString = me.Split(' ');
var year = splitString.FirstOrDefault(x => x.GetYear() > 0).Select(x => x.GetYear());

但这不是

{{1}}

我想知道为什么它不起作用,因为Select<>()应该是投影权?

提前致谢。

1 个答案:

答案 0 :(得分:6)

FirstOrDefault会返回IEnumerable

中的单个元素

如果在string[]的第二种情况下使用它,则会返回string

Select项目上使用string项目的每个字符,char类型

不存在您的扩展方法