gpt4 book ai didi

c# - 使用 LINQ 从字典中获取键值组合

转载 作者:太空狗 更新时间:2023-10-30 00:30:58 24 4
gpt4 key购买 nike

假设我有以下字典:

private Dictionary<string, IEnumerable<string>> dic = new Dictionary<string, IEnumerable<string>>();

//.....
dic.Add("abc", new string[] { "1", "2", "3" });
dic.Add("def", new string[] { "-", "!", ")" });

我怎样才能得到 IEnumerable<Tuple<string, string>>包含以下组合:

{
{ "abc", "1" },
{ "abc", "2" },
{ "abc", "3" },
{ "def", "-" },
{ "def", "!" },
{ "def", ")" }
}

不必Tuple<string, string> , 但它似乎是更合适的类型。

我一直在寻找一个简单的 LINQ 解决方案(如果有的话)。

我尝试了以下方法:

var comb = dic.Select(i => i.Value.Select(v => Tuple.Create<string, string>(i.Key, v)));

但是comb最终成为 IEnumerable<IEnumerable<Tuple<string, string>>> 类型.

最佳答案

你想要 Enumerable.SelectMany 这将使你的IEnumerable<IEnumerable<T>>变平:

var comb = dic.SelectMany(i => i.Value.Select(
v => Tuple.Create(i.Key, v)));

产生:

enter image description here

关于c# - 使用 LINQ 从字典中获取键值组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31384689/

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