Имея эти основные определения
bool MyFunc(string input)
{
return false;
}
var strings = new[] {"aaa", "123"};
Мне интересно, почему это не скомпилируется:
var b = strings.Select(MyFunc);
Но это будет:
var c = strings.Select(elem => MyFunc(elem));
Сообщение об ошибке: "Аргументы типа для метода" System.Linq.Enumerable.Select(System.Collections.Generic.IEnumerable, System.Func) "не могут быть выведены из использования."
Совет по ошибкам Resharper говорит, что он путается между
Select(this IEnumerable<string>, Func<string, TResult>)
и
Select(this IEnumerable<string>, Func<string, int, TResult>)
... но подпись для MyFunc понятна - для этого требуется один (строковый) параметр.
Может ли кто-нибудь пролить свет здесь?