【发布时间】:2017-05-11 07:24:44
【问题描述】:
假设我有两个字符串列表。
List 1
- Item Abc
- Item Xyz
- Item BlahBlah
List 2
- Item Abc
- Item Xyz
- Item YadiYada
我想显示匹配和缺失匹配的表格,如下所示:
List 1 | List 2
----------------------------------
Item Abc | Item Abc
Item Xyz | Item Xyz
Item BlahBlah |
| Item YadiYada
我认为这可以用 LINQ 优雅地完成,但我不太确定如何解决它。我很感激这方面的一些指导。
【问题讨论】:
-
提供一个minimal reproducible example,说明您到目前为止所尝试的方法,以便在需要时提供帮助。
-
集合论呢?
union他们然后.except()通过他们的intersect?而intersect会给你匹配,这种方法会给你所有不匹配。 --((List A) U (List B)) - ((List A) ∩ (List B)) -
@BagusTesa,我知道你要去哪里,但这只会给我收集其他列表中不包含的那些,这只是答案的一部分。我还需要那些仅在 List1 中的项目和仅在 List2 中的项目。不过,这帮助我走上了正轨!
-
项目的顺序是否重要或容易被捏造,例如1、2、3 是否等于 2、1、3,因为它包含所有相同的值?您使用的是
List<string>还是其他一些对象集合?如果不是字符串,你想比较对象引用还是做深度比较,即具有相同属性值的不同对象匹配? -
@HABO,不,顺序不重要。更多的问题是,列表 1 中的项目是否包含在列表 2 中,反之亦然。如果没有,哪些是缺失的,以及来自哪个列表。至于我正在使用哪种类型的列表,它实际上是一侧的对象列表,其中一个对象属性与另一个字符串列表进行比较。我在这里简化了问题,因为我的问题的核心是如何比较它们。
标签: c# linq outer-join