从其他列表中删除项目列表

时间:2011-07-15 13:08:12

标签: c#

假设我有一个包含10个元素的listBox,我将前4个元素放在List list1中,其余元素放在另一个List list2中:

list2 = listbox.remove(list1);

像这样的东西。这是可能的吗?

感谢。

1 个答案:

答案 0 :(得分:5)

您可以使用LINQ轻松完成此操作:

list2 = listbox.Items.Except(list1);

但是,Except需要比较list中的项目和listbox中的项目以产生结果。上面的示例(默认行为)假定列表中项目的类型由参考比较唯一标识(在这种情况下听起来很好)。

如果类实现IEquatable<T>和/或覆盖Equals,则Except使用该方法测试是否相等。