gpt4 book ai didi

c# - 如何编写具有来自一列的多个值的 LINQ 查询?

转载 作者:太空宇宙 更新时间:2023-11-03 21:40:07 24 4
gpt4 key购买 nike

我需要从只有一列的多个值的数据表中查找数据。

下面是一个例子:

 var Value = (from r in datatable.AsEnumerable()
where r.Field<string>(ColumnName).Contains("test1,test2")
select r ).ToList();

这里的 ColumnName 是我的数据表的列名,“test1, test2”是不同的值(值的数量是动态的并且以“,”作为分隔符)。

我想进行此 Linq 查询,它返回数据表中值等于“test1”和“test2”的所有记录。

编辑:上面的 LINQ 查询返回的结果类似于下面的 SQL 查询。 Select * from Table where ColumnName in ('test1','test2')

最佳答案

使用拆分 + 合并:

IEnumerable<string> values = "test1,test2".Split(',');
var matchingRows = from row in datatable.AsEnumerable()
join value in values
on row.Field<string>(ColumnName) equals value
select row;
DataTable tblResult = matchingRows.CopyToDataTable(); // or ToList

为了完整起见,less efficient但更自然的方法是使用 Contains:

var matchingRows = from row in datatable.AsEnumerable()
where values.Contains(row.Field<string>(ColumnName))
select row;

关于c# - 如何编写具有来自一列的多个值的 LINQ 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19784770/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com