将DataRowCollection转换为DataRow
将DataRowCollection实例转换为DataRow []的最佳方式是什么?
DataRow[] rows = dt.Select(); 假设你仍然可以访问数据表。
为了完整起见,这是另一种方式(与Linq),它保留行sorting :
 DataRow[] rows = dt.Rows.Cast<DataRow>().ToArray() 
这是显而易见的,但是:
  DataRowCollection.CopyTo(DataRow[] array, Int32 offset) ? 
看来不pipe怎样,你将不得不迭代集合(CopyTo迭代内部DataRowTree元素)。
我想你可以使用reflection来访问非公有树,但花费很大。
如果您不能访问包含表格,则可以使用扩展方法:
 public static class DataRowCollectionExtensions { public static IEnumerable<DataRow> AsEnumerable(this DataRowCollection source) { return source.Cast<DataRow>(); } } 
之后:
 DataRow[] dataRows = dataRowCollection.AsEnumerable().ToArray(); 
 但是,如果您有权访问包含表,最好使用DataTable的AsEnumerable扩展方法( Description , Source )访问行: 
 DataRow[] dataRows = dataTable.AsEnumerable().ToArray(); 
 无论哪种方式,你可以使用DataTable的Select方法与几个重载( 描述 , 来源 ): 
 DataRow[] dataRows = dataTable.Select();