1

ID、名前、都市のプロパティを持つ list1 と list2 の 2 つの顧客リストがあります。リスト2に同じ名前と都市のアイテムが存在する場合、リスト1からアイテムを削除する必要があります。複数のパラメーターを選択するための linq クエリの記述方法。

4

2 に答える 2

11
list1.RemoveAll(c => list2.Any(c2 => c2.Name == c.Name && c2.City == c.City));
于 2012-08-31T01:23:19.273 に答える
2

&&orを使用して、2 つのブール値で条件を記述するのと同じです||。例:

from x in list1
where list2.Any(y => y.Name == x.Name && y.City == x.City)
select x

「述語」は単に であることに注意してくださいFunc<MyType, bool>。したがって、最後に bool を返す限り、かなりファンキーなことを行うことができます。

もちろん、列挙にリストを変更することはできないため、削除する前にIEnumerable( it) を列挙する必要がありますが、おそらくそれを知っていました (または、上記の述語で使用するだけです)。.ToList()List.RemoveAll

于 2012-08-31T01:19:26.820 に答える