.net - LINQ 到数据表

标签 .net linq

我有大 DataTable 我想得到这个 DataTable 的子集,表示为 DataTable。
简要说明如何选择 DataTable 中的特定列。

我正在尝试这样的事情,但它不起作用......

DataTable dTable = new DataTable();
...
...
...
        DataTable dt = from field in dTable
                       where field.Field<string>("Manager")
                       where field.Field<string>("Phone")
                       select field;

也许我的代码是错误的,如何在不循环的情况下将“经理”和“电话”列从一个数据表获取到另一个数据表?

最佳答案

引用 DataTableExtensions -

http://msdn.microsoft.com/en-us/library/system.data.datatableextensions.asenumerable.aspx

然后...

var whatever = dTable.AsEnumerable();

然后根据 MSDN 示例...
var productNames = from products in table.AsEnumerable() 
      select products.Field<string>("ProductName");

编辑/更新:不幸的是,我认为没有内置的直接转换回具有不同架构的 DataTable。您使用数据表?我相信它......因为重构和测试你的代码可能需要太多的努力。祝你好运,让我们随时关注,因为使用强类型列表更有趣。

关于.net - LINQ 到数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10382343/

相关文章:

c# - 如何将 DataTable 行移动到其 DataTable 的第一个位置

c# - 如何使用 LINQ 添加两条记录?

c# - 日志记录仅在本地有效,但在部署到 Microsoft Azure 应用服务时无效

c# - 在 C# 中克隆 List<List<T>> 的正确方法

c# - 如何在where子句中将字符串转换为DateTime?

c# - 将 Linq 结果绑定(bind)到 datagridview

c# - 带更新查询的 Linq

c# - Windows Workflow 4.5 延迟事件未持续

c# - 用于将 WCF 服务发布到 Azure 的 web.config 更改

c# - 为 asp.net gridview 中的每一行提供唯一的行 ID