gpt4 book ai didi

c# - 遍历 KeyValuePair 以外的内容时如何输出字典值

转载 作者:行者123 更新时间:2023-11-30 14:08:41 26 4
gpt4 key购买 nike

当我使用 foreach(KeyValuePair<string,List<int>> test in myDictionary) 遍历字典时,我知道如何在值是列表时从字典输出键和值,但如果我必须使用不同类型的循环,如下例所示,我不确定如何正确获取值。

我正在遍历一个列表,但使用的是字典,因为我是按字母顺序排序的。我知道还有其他方法可以做到这一点,这不是我的问题。

因此,我尝试根据键按字母顺序输出键及其值。

string string1 = "A_list1";
List<int> list1 = new List<int> { 1, 2, 3 };

string string2 = "B_list2";
List<int> list2 = new List<int> { 4, 5, 7 };

string string3 = "C_list3";
List<int> list3 = new List<int> { 8, 9, 10 };

Dictionary<String, List<int>> myDictionary = new Dictionary<string, List<int>>();

myDictionary.Add(string2, list1);
myDictionary.Add(string1, list2);
myDictionary.Add(string3, list3);

var sortedAlphabeticallyMyDictionary = myDictionary.Keys.ToList();
sortedAlphabeticallyMyDictionary.Sort();

foreach (string myString in sortedAlphabeticallyMyDictionary)
{
MessageBox.Show("Key: " + myString + "\n" + "Value: " + myDictionary[myString] );
}

输出

Key: A_list1
Value: System.Collections.Generic.List`1[System.Int32]

Key: B_list2
Value: System.Collections.Generic.List`1[System.Int32]

Key: C_list3
Value: System.Collections.Generic.List`1[System.Int32]

输出是有道理的,因为如果你有一个包含列表的字典,你必须作为一个 KeyValuePair 进行迭代才能得到实际的列表,但我是一个 super C# 菜鸟,并不确定如何在这种情况下正确获取列表。

感谢任何帮助。

最佳答案

您可以转换 List<int>以这种方式表示字符串:

var list = new List<int> { 1, 2, 3 };
MessageBox.Show(string.Join(",", list.Select(x => x.ToString())));

所以你可以使用这段代码:

foreach (string myString in sortedAlphabeticallyMyDictionary)
{
MessageBox.Show(string.Format("Key: {0} \n Value: {1}" , myString,
string.Join(",", myDictionary[myString].Select(x => x.ToString()))) );
}

不要忘记添加 using System.Linq;

关于c# - 遍历 KeyValuePair 以外的内容时如何输出字典值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34079393/

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