1

Containsこのメソッドを使用して、where次のような linq クエリで句を生成できることを知っています。

List<long> objectIDs = new List<long>() { 1, 1, 2 };
var objects = dbcontext.Where(o => objectIDs.Contains(o.ID))
                     .Select(o => o).ToList();

ID私の質問は、条件で が 2 回発生した場合、一致するオブジェクトを 2 回選択するにはどうすればよいwhereですか?

4

1 に答える 1

4

一致ごとにオブジェクトの個別のコピーを選択したいようです。

Select()オブジェクトを 1 つだけ返すことができます。あなたが必要SelectMany():

list.SelectMany(p => Enumerable.Repeat(p, objectIDs.Count(id => id == p.ID)))

結合を使用してこれをより高速に行うこともできます。

于 2013-05-20T02:18:36.203 に答える