3
首先道歉,如果這是赤裸裸的重複的對象,我搜索了可能產生的結果,但很難找到一個答案/連貫構建我的檢索詞的所有短語。聯盟兩個集合,但只用一個ID匹配
我有一個集合1和對象A的Collection 2
// Object A Structure
Date
Type
Value
收集1佔地面積日期1日至2日2種類型和系列2涵蓋日期3日至4日爲1種類型:
// Collection 1
[0] = 1st, TypeA, 3
[1] = 2nd, TypeA, 3
[2] = 1st, TypeB, 57
[3] = 2nd, TypeB, 57
// Collection 2
[0] = 3rd, TypeB, 57
[1] = 4th, TypeB, 58
我最初的要求是這兩個集組合。這不是個問題:
var result = collection1.Union(collection2);
不過,我現在想兩個集合,但在類型不收集2存在自Collection 1排除對象合併:
// Result Collection
[0] = 1st, TypeB, 57
[1] = 2nd, TypeB, 57
[2] = 3rd, TypeB, 57
[3] = 4th, TypeB, 58
我敢肯定有一個簡單的(希望linq)一個線路解決方案,但我不能讓我的大腦齒輪來弄清楚它是什麼。
最好的(兩行)我走到這一步是:
// Get distinct Types from Collection 2
var typesToInclude = collection2.GroupBy(c => c.Type).Select(group => group.First().Type);
var result = collection2.Union(collection1.Where(c => typesToInclude.Contains(c.Type)));
但是,這感覺很笨重,而不是最佳:(
Ahhhhhhhh任何!它甚至不是對我一個新的,只是看不到樹木,不見森林:)非常感謝賈裏德,我更喜歡的順序爲好,看起來比嵌入聯盟內的地方更好。 – thudbutt