これは単純なはずですが、私はそれを行うための良い方法を考えることができません。ILookupを別のILookupにどのように変換しますか?たとえば、ILookupをコピー/クローンして、同じキーと同じグループを持つ別のILookupを作成するにはどうすればよいでしょうか。
これが私の足の不自由な試みです:
static ILookup<TKey, TValue> Copy<TKey, TValue>(ILookup<TKey, TValue> lookup)
{
return lookup
.ToDictionary(
grouping => grouping.Key,
grouping => grouping.ToArray())
.SelectMany(pair =>
pair
.Value
.Select(value =>
new KeyValuePair<TKey, TValue>(pair.Key, value)))
.ToLookup(pair => pair.Key, pair => pair.Value);
}
誰かがこれを改善できますか?
-ブライアン