我想问一下是否有一种优雅而有效的方式将两个MyClass列表合并为一个?根据属性将两个列表合并为一个
MyClass的是这样的:
- ID:
int
- 名称:
string
- EXTID:
int?
和列表是根据列表中的不同来源和对象填充做份额ID,所以它看起来像这样:
MyClass instance from List1
ID = someInt
Name = someString
ExtID = null
而且从列表2
MyClass的实例ID = someInt (same as List1)
Name = someString (same as List1)
ExtID = someInt
我基本上需要的是这两个清单合并,所以结局是包含一个列表:
ID = someInt (from List1)
Name = someString (from List1)
ExtID = someInt (null if no corresponding item - based on ID - on List2)
我知道我能做到这一点简单地使用foreach循环,但我很想知道是否有更优雅和更可取的(由于性能,可读性)方法?
编写一个'Merge'函数,将两个具有相同'ID'的实例组合成一个 - 然后你可以连接列表,按ID编组并最终使用合并函数折叠/缩小组 - 这就是我将如何做到的为readabi lity - 对于性能来说,你可能在排序和循环时很好 – Carsten