这可能是一个非常简单的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 p.RowNum is in the set: {50,60,70}"
我有一个列表或双打,我希望避免使用大量的"OR"
条件......
非常感谢 - kcross
答案 0 :(得分:5)
这样的事情对你有用:
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();
答案 1 :(得分:2)
您可以创建要查找的数字的列表或数组:
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 ....