在linq操作之前需要对DataRow进行转换。为什么?

时间:2013-11-21 05:04:02

标签: c# linq linq-to-dataset

DataRowCollection:InternalDataCollectionBase

InternalDataCollectionBase:ICollection,IEnumerable

因此,DataRowCollection间接继承了IEnumerable。 通常,如果一个类继承IEnumerable,我们可以应用linq操作。 但是在DataRowCollection中这失败了。为什么呢?

1 个答案:

答案 0 :(得分:2)

大多数Linq扩展方法(来自System.Linq.Enumerable)都使用泛型System.Collections.Generic.IEnumerable<T>,而不是InternalDataCollectionBase实现的非泛型System.Collections.IEnumerable。这就是您使用Cast(或OfType)扩展方法将IEnumerable转换为IEnumerable<DataRow>的原因。