C# с использованием DataTable AsEnumerable() в.NET 2
Я пытаюсь запустить следующий код в приложении winnet.net 2:
DataTable dt = this.GetData(null, null, true, sql);
DateTime minDate = (from f in dt.AsEnumerable()
select f.Field<DateTime>("Timestamp")).Min();
Я получаю ошибки для "using system.linq" и ".AsEnumerable()". Есть ли способ, как я могу решить эту проблему, чтобы использовать AsEnumerable()? Или я должен просто отказаться от этого метода?
Спасибо!
2 ответа
.NET 2 не имеет LINQ. Вы можете использовать LINQBridge, который может включать или не включать AsEnumerable()
метод расширения для DataTable
, Если это так, вы можете просто использовать Cast<DataRow>()
вместо этого, необязательно, через явно типизированную переменную диапазона:
DateTime minDate = (from DataRow f in dt.AsEnumerable()
select f.Field<DateTime>("Timestamp")).Min();
Тогда вам также понадобится Field<T>
метод расширения на DataRow
, Возможно, вы могли бы написать это сами, если это не часть LINQBridge.
Просто чтобы прояснить - ничего из этого не будет работать приятно, если вы также используете Visual Studio 2005, потому что вам нужны функции C# 3 лямбда-выражений, методы расширения и т. Д.
Есть ли возможность, вы можете обновить до.NET 3.5? Это сделало бы жизнь намного проще...
LINQ был представлен в.NET 3.5, поэтому, боюсь, вам здесь не повезло:(