如果其基类派生自IEnumerable <T>,为什么不能在DataRowCollection上使用LINQ

蒙苏古提克斯

我发现不可能在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...
    }
}

我在LINQ官方文档中搜索了我发现的地方

标准查询运算符允许将查询应用于任何基于Enumerable的信息源。

我知道原因应该很简单,但是我无法弄清楚是什么原因。所以我在这里:

为什么LINQ对于System.Data.DataRowCollection不允许的实例

[编辑]:如何克服这个问题已经有了答案,但为什么没有克服,所以这就是我的目的:理解而不是克服。

错误的Akbari

它的类型System.Collections.IEnumerable不是,IEnumerable<T>但是您可以在此处使用CastOfType使用LINQ:

DataRow dr1 = dt.Rows.Cast<DataRow>().First(); 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么不能在带有模板的派生类中使用基类的别名?

来自分类Dev

为什么不能在扩展方法中用通用类型变量替换IEnumerable <T>?

来自分类Dev

为什么带有泛型范式(<T extended Parent>)的类的静态函数不能在子类中使用<T extended Child>

来自分类Dev

为什么不能在T4模板的类成员中访问实用程序方法?

来自分类Dev

为什么派生自Comparer <T>类而不是实现IComparer <T>接口的实现类?

来自分类Dev

在Java中,为什么不能在泛型类上使用构造函数?

来自分类Dev

为什么我不能在从HashMap获得的对象上使用其他类的公共方法?

来自分类Dev

为什么不能在类的实例上设置属性?

来自分类Dev

无法在派生类的IEnumerable基类上使用LINQ方法

来自分类Dev

C#:当派生类及其基类都实现IEnumerable时,在派生迭代器类上使用LINQ

来自分类Dev

派生类到底从其基类继承了什么?

来自分类Java

为什么我不能在匿名类中使用<Class> .this?

来自分类Dev

为什么不能在T-SQL函数中的表变量上运行INSERT EXEC?

来自分类Dev

为什么不能在JObject上使用LINQ方法?

来自分类Dev

为什么我不能在代码块12.11编译器中使用clock_t?

来自分类Dev

为什么我不能在 GMP 中使用带有 mpz_t 的矢量?

来自分类Dev

如果可以在字符串上找到属性名称,为什么不能在 undefined 上找到它们?

来自分类Dev

为什么不能在接口类型上引用类的方法

来自分类Dev

为什么不能在同一行上定义类和函数?

来自分类Dev

为什么 GHC 不能在 Rank 2 类型的类类型族上推导出类型相等?

来自分类Dev

为什么Linq在Nullable <T>上的联接不能与==一起工作?

来自分类Dev

为什么使用只读IEnumerable <T>

来自分类Dev

为什么在C ++ 17上不能使用`{}`而不使用`()`构造此派生类?

来自分类Dev

为什么我们不能在Python中使用其地址访问对象?

来自分类Dev

我可以使用其基类的实例初始化派生的数据类吗?

来自分类Dev

无法获取派生类以使用其基类的构造函数

来自分类Dev

如果从“ if condition”调用它,为什么不能在pug模板中使用内联alert()?

来自分类Dev

如果使用 FilterRegistrationBean,为什么 Autowired 不能在 Filter 内部工作?

来自分类Dev

为什么带有@EmbeddedId的实体不能在对应的@Embeddable类中使用LocalDateTime?

Related 相关文章

  1. 1

    为什么不能在带有模板的派生类中使用基类的别名?

  2. 2

    为什么不能在扩展方法中用通用类型变量替换IEnumerable <T>?

  3. 3

    为什么带有泛型范式(<T extended Parent>)的类的静态函数不能在子类中使用<T extended Child>

  4. 4

    为什么不能在T4模板的类成员中访问实用程序方法?

  5. 5

    为什么派生自Comparer <T>类而不是实现IComparer <T>接口的实现类?

  6. 6

    在Java中,为什么不能在泛型类上使用构造函数?

  7. 7

    为什么我不能在从HashMap获得的对象上使用其他类的公共方法?

  8. 8

    为什么不能在类的实例上设置属性?

  9. 9

    无法在派生类的IEnumerable基类上使用LINQ方法

  10. 10

    C#:当派生类及其基类都实现IEnumerable时,在派生迭代器类上使用LINQ

  11. 11

    派生类到底从其基类继承了什么?

  12. 12

    为什么我不能在匿名类中使用<Class> .this?

  13. 13

    为什么不能在T-SQL函数中的表变量上运行INSERT EXEC?

  14. 14

    为什么不能在JObject上使用LINQ方法?

  15. 15

    为什么我不能在代码块12.11编译器中使用clock_t?

  16. 16

    为什么我不能在 GMP 中使用带有 mpz_t 的矢量?

  17. 17

    如果可以在字符串上找到属性名称,为什么不能在 undefined 上找到它们?

  18. 18

    为什么不能在接口类型上引用类的方法

  19. 19

    为什么不能在同一行上定义类和函数?

  20. 20

    为什么 GHC 不能在 Rank 2 类型的类类型族上推导出类型相等?

  21. 21

    为什么Linq在Nullable <T>上的联接不能与==一起工作?

  22. 22

    为什么使用只读IEnumerable <T>

  23. 23

    为什么在C ++ 17上不能使用`{}`而不使用`()`构造此派生类?

  24. 24

    为什么我们不能在Python中使用其地址访问对象?

  25. 25

    我可以使用其基类的实例初始化派生的数据类吗?

  26. 26

    无法获取派生类以使用其基类的构造函数

  27. 27

    如果从“ if condition”调用它,为什么不能在pug模板中使用内联alert()?

  28. 28

    如果使用 FilterRegistrationBean,为什么 Autowired 不能在 Filter 内部工作?

  29. 29

    为什么带有@EmbeddedId的实体不能在对应的@Embeddable类中使用LocalDateTime?

热门标签

归档