Я использую ADO.NET и С#, и я хочу преобразовать объект DataTable в массив DataRows. Каков элегантный способ сделать это?
ADO.NET: преобразование DataTable в массив DataRows
Ответ 1
Моим первым вопросом было бы почему? Запрос не имеет смысла.
Ответ:
DataRow[] rows = myDataTable.Select();
Ответ 2
На самом деле DataTable имеет свойство, называемое Rows, ведьма предоставляет методы для этого.
Вы можете выполнить это:
List<System.Data.DataRow> r = d.Rows.AsQueryable().OfType<System.Data.DataRow>().ToList();
Ответ 3
DataTable.Select() предоставляет вам массив DataRows. Вы можете использовать это как массив
Dim dt As New DataTable
Dim dr() As DataRow = dt.Select()
Если вам нужен ArrayList, вы можете
public ArrayList ConvertDT(ref DataTable dt)
{
ArrayList converted = new ArrayList(dt.Rows.Count);
foreach (DataRow row in dt.Rows)
{
converted.Add(row);
}
return converted;
}
Я не использовал функцию dt.rows.CopyTo. возможно, это тоже работает.
Ответ 4
Если вы хотите видеть содержимое в виде строки, используйте этот код:
string.Join(",", dataTable.AsEnumerable().SelectMany(row => row.ItemArray))