当前位置:  开发笔记 > 编程语言 > 正文

使用LINQ查询DataColumnCollection

如何解决《使用LINQ查询DataColumnCollection》经验,为你挑选了3个好方法。

我正在尝试在DataTable的Columns属性上执行简单的LINQ查询:

from c in myDataTable.Columns.AsQueryable()
    select c.ColumnName

但是,我得到的是:

无法找到源类型"System.Linq.IQueryable"的查询模式的实现.找不到"选择".考虑明确指定范围变量'c'的类型.

如何让DataColumnCollection与LINQ一起玩得很好?



1> Dave Markle..:

怎么样:

var x = from c in dt.Columns.Cast()
        select c.ColumnName;


这是因为dt.Columns是IEnumerable,但不是IEnumerable .这只是一个事实的函数,该类有点旧,并没有实现新的泛型类型.当您转换<>()时,您将转换为IEnumerable ,其中定义了扩展方法.
@Dave:首先是什么导致了这个问题?我们怎么做Cast()?

2> Cobra..:

你也可以使用:

var x = from DataColumn c in myDataTable.Columns
        select c.ColumnName

它将有效地与Dave的代码相同:"在查询表达式中,显式类型的迭代变量转换为Cast(IEnumerable)的调用",根据Enumerable.Cast MethodMSDN文章.



3> 小智..:

使用Linq方法语法:

var x = myDataTable.Columns.Cast().Select(c => c.ColumnName);

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有