gpt4 book ai didi

c# - 为什么我需要再次将 DataRow 转换为 DataRow?

转载 作者:太空狗 更新时间:2023-10-29 23:15:15 24 4
gpt4 key购买 nike

查看下面的代码块,

DataTable _table = new DataTable();

//1) Why I need to Convert DataRow again into DataRow by Casting ?
List<DataRow> _rows = _table.Rows.Cast<DataRow>().Select(a => a).ToList();

//2) Why this is not valid?
List<DataRow> _rows = _table.Rows.Select(a => a).ToList();

在第一种情况下,为什么我需要再次将 DataRow 转换为 DataRow?为什么第二种情况无效?

最佳答案

DataTable.Rows的返回类型,DataRowCollection class,可以追溯到泛型之前的黑暗时代,因此,只实现了 IEnumerable而不是 IEnumerable<DataRow> .

您可以使用 Shiny 的新 DataTable.AsEnumerable LINQ extension method相反,它返回一个 IEnumerable<DataRow> :

List<DataRow> _rows = _table.AsEnumerable().Select(a => a).ToList();

其实你不需要Select(a => a)完全:

List<DataRow> _rows = _table.AsEnumerable().ToList();

PS:有一个Microsoft Connect feature request制作DataRowCollection实现 IEnumerable<DataRow> .但是,由于有一个简单的替代方案 (AsEnumerable),他们可能还有其他优先事项。

关于c# - 为什么我需要再次将 DataRow 转换为 DataRow?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20560050/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com