我想問一下是否有一種優雅而有效的方式將兩個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