Преобразование DataRowCollection в IEnumerable
Я хотел бы сделать что-то подобное в .NET 3.5. Какой самый быстрый способ?
IEnumerable<DataRow> collection =
TypedDataSet.TypedTableBase<DataRow>.Rows as IEnumerable<DataRow>;
4 ответа:
предполагая, что вы используете .NET 4.0, который вводит ковариацию:
// Presumably your table is of some type deriving from TypedTableBase<T>, // where T is an auto-generated type deriving from DataRow. IEnumerable<DataRow> collection = myTypedTable;
The тип таблицы осуществляет
IEnumerable<T> where T : DataRow
.В противном случае:
IEnumerable<DataRow> collection = myTypedTable.Cast<DataRow>();
простое прямое решение заключается в использовании метода "Select()" системы.Данные.Объект DataTable, который производит " DataRow []". Из этого вы можете рассматривать как IEnumberable с помощью Linq, как показано ниже:
List<MyItem> items = dtItems.Select().Select(row => new MyItem(row)).ToList();
полезный список объектов для каждой строки.