c# - SQL Where in to Linq with DataTable

标签 c# linq sql-to-linq-conversion

我正试图在 C# 中实现这一点

Select a.Name,a.Param
from Customization a
where a.name in (select Name from Standard)

我试过类似的方法,但还是不行。

 merge = dt1.AsEnumerable()
            .Where(r => r.Field<string>("Name")
            .Contains(dt2.Rows.Contains("Name")))
            .CopyToDataTable();

最佳答案

通过使用当前的方式,我们需要从第二个数据表 ( dt2 ) 中获取 dt1 中每一行的姓名列表所以我建议你先得到名单,然后检查是否r.Field<string>("Name")包含在集合中。为此,您可以使用以下代码

var NameCollection = dt2.AsEnumerable().Select(x=> x.Field<string>("Name")).ToList();

merge = dt1.AsEnumerable()
           .Where(r => NameCollection.Contains(r.Field<string>("Name")))
           .CopyToDataTable();

关于c# - SQL Where in to Linq with DataTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45183322/

相关文章:

c# - EF6 模拟派生 DbSet

c# - LINQ,处理模型中的 Null

c# - 如何手动调用事件?

c# - 为什么我的 WPF ListView/GridView 没有虚拟化?

vb.net - 如何在没有 Linq 的情况下查询 DataGridView

linq - 如何在 linq C# 中使用 group by 并获取记录列表

c# - SQL to LINQ in C#(查询多个表和别名)

c# - 将条件为 "In"的 SQL 查询转换为 Lambda 表达式

c# - 如何在 C# 中使用 SHA256 和 ECDSA 算法创建数字签名

c# - IEnumerable.Select 索引