10

LINQ を使用して、別の IList に基づいて IList から特定の要素を削除する方法。ID が list2 に存在する list1 からレコードを削除する必要があります。以下はコードサンプルです。

class DTO
{

    Prop int ID,
    Prop string Name
}

IList<DTO> list1;

IList<int> list2;



foreach(var i in list2)
{
    var matchingRecord = list1.Where(x.ID == i).First();
    list1.Remove(matchingRecord);
}

これは私がやっている方法ですが、同じことを行うためのより良い方法はありますか。

4

3 に答える 3

8

Whereより簡単に使用できます:

list1 = list1.Where(x => !list2.Contains(x.ID))
             .ToList();

しかし、あなたは本当にその場で削除する必要があります.@DanielHilgarthの答えを好む

于 2013-05-17T09:59:59.953 に答える