我正在使用ADO.NET和C#,想将DataTable对象转换为DataRow数组。有没有一种优雅的方法可以做到这一点?
我的第一个问题是为什么?这个请求没有意义。
答案是:
DataRow[] rows = myDataTable.Select();
List<System.Data.DataRow> r = d.Rows.AsQueryable().OfType<System.Data.DataRow>().ToList();
DataTable.Select()方法会返回一个DataRow数组。你可以把它当做一个数组来使用。
Dim dt As New DataTable
Dim dr() As DataRow = dt.Select()
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函数。也许那个也可以用。
string.Join(",", dataTable.AsEnumerable().SelectMany(row => row.ItemArray))
.Select()
与table.Rows.Count
进行比较,您会发现它们是相同的。 - Joel Etherton