最佳实践:将LINQ查询结果转换为DataTable而不进行循环

Ram*_*eef 22 c# datatable linq-to-sql

将LINQ-Query结果转换为新结果的最佳做法是什么DataTable
我能找到比foreach每个结果项更好的解决方案吗?

编辑 AnonymousType

var rslt = from eisd in empsQuery
           join eng in getAllEmployees()
           on eisd.EMPLOYID.Trim() equals eng.EMPLOYID.Trim()
           select new
           {
               eisd.CompanyID,
               eisd.DIRECTID,
               eisd.EMPLOYID,
               eisd.INACTIVE,
               eisd.LEVEL,
               eng.EnglishName
           };
Run Code Online (Sandbox Code Playgroud)

编辑2: 我有例外:

除Contains()运算符外,本地序列不能用于查询运算符的LINQ to SQL实现.

当我尝试执行查询并在此处找到解决方案时IEnumerable.Except不会工作,所以我该怎么办?
需要linq的帮助

LaG*_*ere 33

使用Linq数据集.从MSDN:从查询创建DataTable(LINQ到DataSet)

// Query the SalesOrderHeader table for orders placed 
// after August 8, 2001.
IEnumerable<DataRow> query =
    from order in orders.AsEnumerable()
    where order.Field<DateTime>("OrderDate") > new DateTime(2001, 8, 1)
    select order;

// Create a table from the query.
DataTable boundTable = query.CopyToDataTable<DataRow>();
Run Code Online (Sandbox Code Playgroud)

如果您有匿名类型:

来自Coder博客:使用Linq匿名类型和CopyDataTable

它解释了如何使用MSDN的如何:实现通用类型T不是DataRow的CopyToDataTable