配列に対してクエリを実行する方法

asp.net-core-mvc entity-framework-core

質問

最初に、私は質問のタイトルをどのようにするかわからないと言って始めましょう。私はそれを謝ります。何かが私やあなたを賢い者と打つなら、それを編集します。

私の問題はこれです:

public IActionResult(string deckList //comma-separated-string of numeric characters which represent id's)
{
var cards = _context.Cards;
var deckListArray = deckList.Split(',');
foreach (var id in deckListArray)
{
int x = Convert.ToInt32(id);
cards = cards.Where(c => c.ID == id);
}

さて、ループの内部を照会することは、パフォーマンス上の問題のために最小限に抑えることを躊躇していますが、このIQueryableコレクションはこのコードで正しく設定されません。

配列にidがあるすべてのカードを取得するための適切なクエリは何でしょうか?

受け入れられた回答

var ids =  decklist.Split( ',' )
    .Select( id => Convert.ToInt32( id ) )
    .ToArray();

var cards = _context.Cards.Where( c => ids.Contains( c.ID ) );


Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ