2016-05-25 4 views
1

Gegeben Ich habe zwei Listen vom Typ IGrouping:Wie zwei Listen von IGrouping zusammengeführt werden?

List<IGrouping<long, string>>: 
a) Key: 1 Values: "a", "b", "c" 
     2   "d", "e" 
b)  1   "aa", "bb", "cc" 
     3   "f", "g" 

Und ich möchte beide zu einer Einheit verschmelzen:

Key: 1 Values: "a", "b", "c", "aa", "bb", "cc" 
    2   "d", "e" 
    3   "f", "g" 

Kann jemand helfen? Danke.

Antwort

0

Ich habe es funktioniert, aber nicht die beste Lösung.

public static IList<IGrouping<T, TU>> MergeGroupingList<T, TU>(IList<IGrouping<T, TU>> groupings) 
    { 
     IEnumerable<KeyValuePair<T, TU>> temp = (from grouping in groupings 
                from value in grouping 
                select new KeyValuePair<T, TU>(grouping.Key, value)).ToList(); 
     return temp.GroupBy(r => r.Key, r => r.Value).ToList(); 
    }