Я работал с DataTable и заметил, что Resharper рекомендовал преобразовать цикл в выражение LINQ. Я так и сделал, и он был переписан в синтаксисе выражения запроса (упрощенном):
var test1 = from DataRow row in dt.Rows select row;
Лично я предпочитаю синтаксис метода, поэтому переписал его так:
var test2 = dt.Rows.Select(row => row);
И он сломался.
«System.Data.DataRowCollection» не содержит определения для «Select», и не может быть найден метод расширения «Select», принимающий первый аргумент типа «System.Data.DataRowCollection» (вам не хватает директивы using или ссылки на сборку? ?)
Поскольку выражение запроса преобразовано в вызовы методов, почему первое работает, а второе нет? Я ожидал, что либо оба, либо ни один из них не сработают, что, очевидно, не так.