小编Seb*_*ler的帖子

使用方法组替换Lambda表达式时编译器错误

我喜欢Linq语法及其强大功能,但有时候我无法理解为什么事情会起作用.

就像现在一样.我有以下代码:

Regex regex = new Regex( ... );

int result1 = stringList.Count(regex.IsMatch);
IEnumerable<string> result2 = stringList.Where (x => regex.IsMatch (x));
Run Code Online (Sandbox Code Playgroud)

正如您在第一个查询中看到的,我可以使用较短的方法组'regex.IsMatch',但在第二个查询中我必须编写'x => regex.IsMatch(x)'.

作为Count和Where两者采用相同的类型参数

Func<string, bool>
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么在执行此操作时出现编译器错误:

IEnumerable<string> result2 = stringList.Where (regex.IsMatch);
Run Code Online (Sandbox Code Playgroud)

.net linq linq-to-objects

4
推荐指数
1
解决办法
161
查看次数

标签 统计

.net ×1

linq ×1

linq-to-objects ×1