2017-02-05 12 views
1

まず、質問のタイトルを付ける方法がわからないということから始めましょう。私はそれを謝ります。何かが私やあなたを賢い者と打つなら、それを編集します。配列に対してクエリを実行する方法

私の問題はこれです:

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が配列内にあるすべてのカードを取得するための適切なクエリは何でしょうか?

答えて

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

var cards = _context.Cards.Where(c => ids.Contains(c.ID)); 
関連する問題