LINQ to DataTable

Wil*_*oat 5 .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;
Run Code Online (Sandbox Code Playgroud)

也许我的代码是错误的,如何从一个DataTable到另一个DataTable的"管理器"和"电话"列,而不需要循环思考它?

Kri*_*use 5

引用DataTableExtensions -

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

然后...

var whatever = dTable.AsEnumerable();
Run Code Online (Sandbox Code Playgroud)

然后根据MSDN示例...

var productNames = from products in table.AsEnumerable() 
      select products.Field<string>("ProductName");
Run Code Online (Sandbox Code Playgroud)

编辑/更新:不幸的是,我认为没有内置的直接强制转换回具有不同架构的DataTable.你必须使用DataTable?我相信它......因为重构和测试代码可能需要付出太多努力.祝你好运并让我们发布,因为使用强类型列表会更有趣.