我正在处理一个C#项目,该项目需要自定义类的数百个对象的列表,并将它们合并到一个新列表中。在某些情况下,一个真实世界的项目可能会在列表中多次显示,但具有不同的属性。我正在寻找一种有效的方法来将这两个列表合并在一起,以便每次在我的搜索关键属性中找到重复项时,其他属性将合并在一起(通过覆盖其中一个对象的属性或创建一个具有合并属性的新对象),而不是删除第二个实例。在保留唯一属性的同时合并对象
下面是我想要做的一个例子: 带有元素(ID,所有者,品种,颜色)的Dog类的对象。狗路虎属于沙龙和保罗。我希望我的合并列表中包含文本“Sharon/Paul”作为“所有者”变量的新属性。
原有名单:
列表A:
1.Rover(23,沙龙,拉布拉多,黑色)
2.Spot(40,保罗,猎犬,金)
列表B:
- Rover(23,Paul,Labrador,Black)
合并列表:
罗孚(23,莎朗/保罗,拉布拉多,黑色)
点(40,保罗,猎犬,金)
我已经能够加入列表创建: 1.罗孚(23,沙龙,拉布拉多,黑色)01 2. Rover(23,Paul,Labrador,Black) 3. Spot(40,Paul,Retriever,Golden) 或者运行.Unique创建列表: 1. Rover(23,Sharon,Labrador,Black) 2. Spot(40,Paul,Retriever,Golden)
但是这些都没有给我所有我需要的信息在最小的列表中。
分享你的代码,你写来解决上述问题 –
是否有一个共同的基类?它是一个对象列表还是一个键/值对列表或某种地图或字典? – SledgeHammer