Мне нравится синтаксис Linq и его мощь, но иногда я просто не могу понять, почему вещи работают так, как они работают.
Как сейчас.У меня есть следующий фрагмент кода:
Regex regex = new Regex( ... );
int result1 = stringList.Count(regex.IsMatch);
IEnumerable<string> result2 = stringList.Where (x => regex.IsMatch (x));
Как вы можете видеть в первом запросе, я могу использовать более короткую группу методов 'regex.IsMatch', но во втором запросе я должен написать 'x => regex.IsMatch (x) '.
В качестве количества и где оба принимают один и тот же аргумент типа
Func<string, bool>
Я не понимаю, почему при этом я получаю ошибку компилятора:
IEnumerable<string> result2 = stringList.Where (regex.IsMatch);