当前位置: 首页 > 知识库问答 >
问题:

如何在vb中使用lambda删除指定列表项。净[重复]

彭星津
2023-03-14

有这样的情况。有两个列表:list1asList(of intger)list2asList(of intger)

我需要删除列表1中与列表2中的项目相同的所有项目。

例如:

list1 = 0, 1, 2, 3, 6, 10
list2 = 3, 6

从list1中删除list2后:list1 = 0, 1, 2, 10

共有2个答案

干鑫鹏
2023-03-14
list1 = list1.Except(list2).ToList();
堵景天
2023-03-14
list1.RemoveAll(Function(i) list2.Contains(i))

或者只是和代表在一起

list1.RemoveAll(AddressOf list2.Contains)

正如Meta Knight所指出的,如果list2只是一个查找列表,无论如何都不能包含重复项,那么最好使用HashSet(Int32的)。它有一个O(1)查找复杂度,这与它的大小无关,如果你还需要list2,它的缺点是需要更多内存。

您可以轻松创建一个:

Dim setOfNums = new HashSet(Of Int32)(list2)
list1.RemoveAll(AddressOf setOfNums.Contains)
 类似资料:
  • 问题内容: 我想从列表中删除重复项,但我无法正常工作: 问题答案: 如果该代码不起作用,则可能是你未在该类上正确实现。 大概有一些钥匙(我们称之为)可以唯一地标识一个客户。例如 的适当定义equals(Object)如下所示: 为了完整起见,你还应该实现hashCode两个Customer相等的对象将返回相同的哈希值。hashCode上述定义的匹配项为equals: 还值得注意的是,如果列表很大,

  • 实际上,我知道如何减少重复的,或者将分配给,但我有一个不同的问题。如何在Java8中使用stream或者可能是来解决以下智能方式的问题? 假设列表中有一个对象

  • 我要根据列表中项目的属性(邮件)从列表中删除重复项。 我执行了以下操作:

  • 问题内容: 如果想基于每个嵌套列表的第一个元素评估重复项,谁能提出一个好的解决方案从嵌套列表中删除重复项? 主列表如下所示: 如果已经在第一位置出现了另一个具有相同元素的列表,那么我想删除该列表并得到以下结果: 您可以建议一种算法来实现此目标吗? 问题答案: 您是否关心保留订单/删除了哪些重复项?如果不是,则: 会做的。如果您想保留订单并想保留第一个订单,则:

  • 我有一本这样的字典: 我怎么才能把匕首从上面取下来? 我试过这个: 或 但它犯了这个错误:

  • 我需要从String的ArrayList中删除重复项,而不考虑大小写。对于情商: 上面的不会提供任何帮助,因为它工作在将返回false的equals方法上。有没有其他方法可以做以下事情: