我发现不可能在IEnumerable<T>
ie的实例上直接使用LINQSystem.Data.DataRowCollection
此类从System.Data.InternalDataCollectionBase
实现的类派生而来IEnumerable<T>
,因此能够在System.Data.DataRowCollection
....上使用LINQ函数是完全有意义的,但我做不到。
检查以下示例:
using (DBConnection connExport = DBConnection.OpenConnection())
{
DataTable dt = GetDataTableFromDatabase();
DataRow dr1 = dt.Rows.First(); // This LINQ is not allowed
foreach(DataRow dr in dt.Rows) // But enumerating it works fine
{
// Some processing...
}
}
标准查询运算符允许将查询应用于任何基于Enumerable的信息源。
我知道原因应该很简单,但是我无法弄清楚是什么原因。所以我在这里:
为什么LINQ对于System.Data.DataRowCollection
不允许的实例?
[编辑]:如何克服这个问题已经有了答案,但为什么没有克服,所以这就是我的目的:理解而不是克服。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句