21

以下のようなラムダ式を作成するために探しています

IQueryable<Object> queryEntity = 
                _db.Projects.Where(Project=>Project.Id.IN(1,2,3,4));

INLambda式に演算子が見つかりません。

誰か提案がありますか?

4

5 に答える 5

31

これにはIEnumerable.Containsを使用します。

var idList = new[] { 1, 2, 3, 4 };
IQueryable<Object> queryEntity = 
                _db.Projects.Where(Project => idList.Contains(Project.Id));

idListもちろん、インラインを構築することもできます。

于 2012-11-22T07:58:35.800 に答える
2

in演算子はありませんが、containsがあります。ロジックを逆にするだけです。

IQueryable<Object> queryEntity = _db.Projects.Where(Project=>(new []{1,2,3,4}).Contains(Project.Id));

于 2012-11-22T08:00:20.383 に答える
0

IEnumerable.Containsを探しています

_db.Projects.Where(Project => list.Contains(Project.Id));
于 2012-11-22T07:58:53.540 に答える
0

あなたはあなた自身を書くことができます

public static bool In(this object item, IEnumerable list)
{
    return list.Contains(item);
}

public static bool In(this object item, params object[] list)
{
    return item.In(list);
}
于 2012-11-22T08:01:00.283 に答える
0

Andersの賛成ソリューションに基づく擬似コード。

  1. 前提条件:ウィキペディアの歴史的な米国造幣局からの情報を使用します。
  2. データセット:StateMints。
  3. フィールド:場所、ミント。
  4. 要件:ミントIDを持つすべてのコインを選択します。
  5. StateMintsサンプルデータ:
    Mint、Location

    1.O 、ニューオーリンズ、ルイジアナ
    2.W、ウェストポイント、ニューヨーク
    3.D、デンバー、コロラド

これはこれまでの私のコードです:

List<string> mints = new List<string> { "C", "CC", "D", "M", "O", "P", "S", "W" };  
var locations = StateMints.Where(p => mints.Contains(p.Mint.ToUpper())).Select(p => p.Location).ToList();
于 2018-09-12T18:15:56.610 に答える