- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
奇怪的是没有更多关于这个的内容。
精简版
ListA 有一些 ListB 有的元素,有一些没有。ListB 有一些 ListA 有的元素,有些没有。...事实上,绝大多数都是骗子。
注意:这些元素不是常见类型,而是来 self 创建的类...(LINQ Intersect 似乎只适用于已知类型 - 请参阅下面的更新)
如何删除两个列表中它们共有的条目?
长版
-设备上有 ListA 项目,我想将它与 ListB 的项目同步。我不想删除和制作新的。这不是一个可能的选择。
-要同步列表,我会:
首先:
(?) 删除它们之间的任何重复项(这些条目已经同步,毕竟)。
第二步:(简单)删除所有剩余的 ListA 条目(因为它们不是在 ListB 上,否则它们会被当作骗子删除)。
第三:(简单)将 ListB 上剩余的任何条目添加到 ListA(我们的列表需要以 ListA 结尾)。
讨论
现在是的,我可以简单地手动遍历每个列表,但问题更多地与优雅和性能有关。 Union 只是应用了一种“独特”的操作,从而避免了欺骗。
使用 VB 和/或 LINQ,但可以从 C# 转换...
更新 - LINQ Intersect 不喜欢自定义/用户类型(类):
List1: ip: 85.94.160.0 net: 255.255.224.0 hash: 35462368
List1: ip: 91.187.64.0 net: 255.255.224.0 hash: 15720800
List1: ip: 109.111.96.0 net: 255.255.224.0 hash: 27477092
List1: ip: 185.4.52.0 net: 255.255.252.0 hash: 19444704
List1: ip: 194.158.64.0 net: 255.255.224.0 hash: 65489923
List2: ip: 85.94.160.0 net: 255.255.224.0 hash: 45276315
List2: ip: 91.187.64.0 net: 255.255.224.0 hash: 10391797
List2: ip: 109.111.96.0 net: 255.255.224.0 hash: 29919882
List2: ip: 185.4.52.0 net: 255.255.252.0 hash: 13173532
List2: ip: 194.158.64.0 net: 255.255.224.0 hash: 65387957
(散列表示 .GetHashCode() 对每个实例的输出)
我可以覆盖 LINQ 的 Intersect 使用的比较器函数吗?我在网上没有找到太多关于 LINQ 的 Intersect 功能(它用来判断“相等性”的东西)的信息...
对于 VB.NET 人员:
这是 user2321864的解决方案,但在 VB.NET 中:
Dim a = New List(Of Integer) From {2, 4, 6, 8}
Dim b = New List(Of Integer) From {1, 2, 3, 5, 7}
'find items common in both lists
Dim dupes = a.Intersect(b).ToList()
'delete common items from both lists
a.RemoveAll(Function(x) dupes.Contains(x))
b.RemoveAll(Function(x) dupes.Contains(x))
最佳答案
LINQ Intersect 将为您提供两个列表中的公共(public)条目
var a = new List<int>{2,4,6,8};
var b = new List<int>{1,2,3,5,7};
//find items common in both lists
var dupes = a.Intersect(b).ToList();
//delete common items from both lists
a.RemoveAll(x => dupes.Contains(x));
b.RemoveAll(x => dupes.Contains(x));
关于vb.net - 如何删除两个列表共有的重复(用户定义的类)条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24235299/
我有一个包含 28 列的数据库。第一列是代码,第二列是名称,其余是值。 public void displayData() { con.Open(); MySqlDataAdapter
Redmi 官方今天宣布了 Redmi智能电视 A 系列新品,称即将开放预约。 官方并未公布 Redmi智能电视 A 系列新品的具体信息,但给出的海报显示该系列提供五种尺寸:32 英寸、43
我是一名优秀的程序员,十分优秀!