我有一个名为Item的类。Item有一个名为ItemCode的标识符属性,它是一个字符串。我想获得一个Item列表中所有非独特Item的列表。
范例:
List<Item> itemList = new List<Item>()
{
new Item("code1", "description1"),
new Item("code2", "description2"),
new Item("code2", "description3"),
};
字符串
我想要一份名单,
如果我用
var distinctItems = itemsList.Distinct();
型
我得到了一个不同元素的列表,这很好,但我想要的几乎是相反的,我可以从原始列表中减去不同的列表,但这不会包含所有的重复,只是每个重复的一个示例。
我有一个发挥,不能想出一个优雅的解决方案。任何指针或帮助将不胜感激。谢谢!
我有3.5所以LINQ是可用的
4条答案
按热度按时间lp0sw83n1#
我的看法是:
字符串
bt1cpqcv2#
作为扩展方法:
字符串
myzjeezk3#
您可能想尝试使用group by操作符。其想法是按ItemCode对它们进行分组,并将具有多个成员的组,类似于:
字符串
ulmd4ohb4#
我建议写一个自定义的扩展方法,类似这样:
字符串
您还需要为Item类重写Equals()方法,以便通过其代码正确地比较项。