リストにはlinqのIDが含まれています

linqクエリを見つけようとしているので、if文で書くことができます。

擬似コード:

IDListはintリストのリストです。< int >

if (IDList.Contains (Object.Id)) Do something

何が必要なのか分かりません。

none-linqではこれがうまくいきます:

  foreach(int id in IDList )
     {
        if (id == Object.Id)
            break;
     }

私は可能な限り1行にしたい。

私はまずこれを試しました:

IDList.Contains(Object.Id);

コンパイルエラーがスローされます

私はそれがこの2つのうちの1つであるべきなのだろうか?

  IDList.Any(id => id == Object.Id)

または

IDList.Exists(id => id == Object.Id);

I don't completely understand how the lambdas and things work またはthe difference between andy and exists so I'm not sure if I'm along the wrong line?

7
あなたがしたいことは論理的に説明することができますか?これは質問ではっきりしていないためです
追加された 著者 Ankur,

2 答え

これを簡単に行うことができます:

if (MyList.Any(c => c.Id == MyObject.Id)) { }

Assuming that MyList is an IEnumerable (or anything that derives from IEnumerable) where T is an object that has a property named Id of the same type of the property Id on the MyObject instance.

18
追加された
 IDList.Any(id => id == Object.Id)

あなたの述語を満たす少なくとも1つの要素が存在する場合、 true を返します。

5
追加された