gpt4 book ai didi

Linq - 将一个 ILookup 转换为另一个 ILookup

转载 作者:行者123 更新时间:2023-12-02 17:54:14 25 4
gpt4 key购买 nike

这应该很简单,但我想不出一个好的方法。如何将一个 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);
}

谁能改进这个?

-- 布莱恩

最佳答案

这个怎么样:

return lookup
.SelectMany (grp => grp, (grp, item) => new { grp.Key, item})
.ToLookup (x => x.Key, x => x.item);

关于Linq - 将一个 ILookup 转换为另一个 ILookup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4115676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com