"a", "b"], ["EEE" => "a", "c-6ren">
gpt4 book ai didi

c# - 使用 LINQ 将 Dictionary> 转换为 Dictionary>?

转载 作者:行者123 更新时间:2023-11-30 19:54:53 24 4
gpt4 key购买 nike

我有一个 Dictionary<Guid,IList<string>>它显示了一个实体可以拥有的所有名称。

我想转换它以查看映射到所有实体的所有名称。所以:

[["FFF" => "a", "b"],
["EEE" => "a", "c"]]

成为

[["a" => "FFF", "EEE"],
["b" => "FFF"],
["c" => "EEE"]]

我知道使用 foreaches 很容易做到这一点,但我想知道是否有 LINQ/ToDictionary 的方法?

最佳答案

private static void Main(string[] args)
{
var source = new Dictionary<Guid, IList<string>>
{
{ Guid.NewGuid(), new List<string> { "a", "b" } },
{ Guid.NewGuid(), new List<string> { "b", "c" } },
};

var result = source
.SelectMany(x => x.Value, (x, y) => new { Key = y, Value = x.Key })
.GroupBy(x => x.Key)
.ToDictionary(x => x.Key, x => x.Select(y => y.Value).ToList());

foreach (var item in result)
{
Console.WriteLine($"Key: {item.Key}, Values: {string.Join(", ", item.Value)}");
}
}

关于c# - 使用 LINQ 将 Dictionary<Guid,IList<String>> 转换为 Dictionary<string,IList<Guid>>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40469716/

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