4

これはおそらく非常に単純な 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"条件の使用を避けたいと考えています...

どうもありがとう - kcross

4

2 に答える 2

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();
于 2012-04-17T18:57:59.687 に答える
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 ....
于 2012-04-17T18:58:34.507 に答える