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

Adr*_*ian 1 c#

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

list2 = listbox.remove(list1);
Run Code Online (Sandbox Code Playgroud)

像这样的东西.这是真的吗?

谢谢.

Jon*_*Jon 5

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

list2 = listbox.Items.Except(list1);
Run Code Online (Sandbox Code Playgroud)

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

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