【发布时间】:2014-03-12 07:35:01
【问题描述】:
假设两个列表 A 和 B
Dim A as New List(Of String) ( {"011", "011", "012", "001"})
Dim B as New List(Of String) ( {"011", "012", "111"});
我想得到从 A 到 B 的差异,在这个例子中是:[ "011", "001" ]
列表 A 和 B 都可能包含重复条目。如果列表 A 包含重复元素 e 并且列表 B 具有相同的值 e 仅一次 // 少于 A 的次数,结果列表应包含 (times e in A) - (times e in B) e的
例如:
["001", "001", "001", "002"] ~ ["001", "001", "003" ] -> ["001", "002"]
这个问题的解决方案在经典的编程方式中是微不足道的,但我想用 LINQ 有一个(更短的)解决方案,但到目前为止我找不到工作代码,因为Intersect, Except and Union 都删除了重复项我需要保留。
我很高兴看到一个简单的 LINQ 解决方案
【问题讨论】:
标签: linq