【发布时间】:2014-08-27 04:18:15
【问题描述】:
我需要将两个列表与 LINQ 包括 重复项进行比较。 似乎有很多类似的问题,但是,我一直在搜索,并且只找到了忽略重复项的方法 - 仅检查列表 A 是否包含列表 B 中的项目,使用除外或相交。我使用 OrderBy 和 SequenceEquals 取得了一些成功,但它只有在列表大小相同时才有效。
List<Animal> ListA;
List<Animal> ListB;
// This works..
ListA = { Dog, Dog, Dog, Cat, Mouse }
ListB = { Dog, Dog, Dog, Cat, Mouse }
// However, this does not..
ListA = { Dog, Dog, Dog, Cat, Mouse, Mouse }
ListB = { Dog, Dog, Dog, Cat, Mouse }
var result = ListA.OrderBy(animal => animal)
.SequenceEqual(ListB.OrderBy(animal => animal));
无论列表 A 的大小如何,我都需要它来工作。
我希望我已经设法解释了这种情况。 在实际实现中,我根据类似于 ListB 的列表列表检查 ListA,并创建一个新的“可能组合”列表。
感谢您的宝贵时间。
【问题讨论】:
-
订单重要吗?如果顺序不重要,请在
{element, count}列表上进行正常区分,而不仅仅是元素列表。
标签: c# linq duplicates