LINQ:如何测试值是否包含在集合中
本文关键字:是否 包含 集合 测试 何测试 LINQ | 更新日期: 2023-09-27 18:31:21
这可能是一个非常简单的LINQ问题。我正在使用 LINQ to SQL 并拉取数据集。
我当前的代码是这样的:
var tempTable = (from p in dc.Live_Diffs
where p.RowNum = 50
select new CustomResult
{
RowNum = p.RowNum,
ED1 = p.ED1,
ED2 = p.ED2,
ED3 = p.ED3,
ED4 = p.ED4,
ED5 = p.ED5,
ED6 = p.ED6,
ED7 = p.ED7,
ED8 = p.ED8
}).ToList();
我如何指定如下所示的 where 条件:"where p.RowNum is in the set: {50,60,70}"
.
我有一个列表或双打,我希望避免使用大量的"OR"
条件......
非常感谢 - 克罗斯
这样的东西应该适合你:
var listOfConditions = new List<int>{50,60,70};
var tempTable = (from p in dc.Live_Diffs
where listOfConditions.Contains(p.RowNum)
select new CustomResult
{ RowNum = p.RowNum ,
ED1 = p.ED1,
ED2 = p.ED2,
ED3 = p.ED3,
ED4 = p.ED4,
ED5 = p.ED5,
ED6 = p.ED6,
ED7 = p.ED7,
ED8 = p.ED8
}).ToList();
创建要查找的数字的列表或数组:
List<int> rowNums = new List<int> { 50, 60, 70, };
然后你使用Contains()
检查它是否在该列表中。Linq-Sql 会把它变成一个IN
或一个OR
的列表,我不记得是哪个了。
var tempTable =
(from p in dc.Live_Diffs
where rowNums.Contains(p.RowNum)
select ....