我正在尝试从字符串数组返回年份,如果它包含任何匹配的年份.
GetYear()扩展方法如下:
public static int GetYear(this string me)
{
for (int i = 1971; i <= DateTime.Now.Year; i++)
{
if (me.Equals(i.ToString()))
{
return i;
}
}
return -1;
}
Run Code Online (Sandbox Code Playgroud)
这有效
string[] splitString = me.Split(' ');
var year = splitString.Select(x => x.GetYear()).FirstOrDefault(x => x > 0);
Run Code Online (Sandbox Code Playgroud)
但事实并非如此
string[] splitString = me.Split(' ');
var year = splitString.FirstOrDefault(x => x.GetYear() > 0).Select(x => x.GetYear());
Run Code Online (Sandbox Code Playgroud)
我想知道为什么它不起作用,因为Select <>()应该是投影权?
提前致谢.
FirstOrDefault 返回一个元素 IEnumerable
当它在a的第二种情况下使用时string[],它返回一个string
使用Select上一个string项目的字符串的每个字符,而您的扩展方法不存在char类型
| 归档时间: |
|
| 查看次数: |
416 次 |
| 最近记录: |