gpt4 book ai didi

c# - 将项目添加到字典中的列表

转载 作者:可可西里 更新时间:2023-11-01 08:20:29 26 4
gpt4 key购买 nike

我正在尝试根据键将值放入字典中...例如,如果在索引 0 处的键列表中有一个字母“a”。我想将索引为 0 的 val 添加到键为“a”的字典内的列表中(字典(键为索引 0 处的“a”,索引 0 处的 val)...字典(键为“b”处索引 2,索引 2 处的 val))

我期待这样的输出:

in listview lv1: 1,2,4 in listview lv2: 3,5

what I'm getting is 3,4,5 in both listviews

List<string> key = new List<string>();
List<long> val = new List<long>();
List<long> tempList = new List<long>();
Dictionary<string, List<long>> testList = new Dictionary<string, List<long>>();

key.Add("a");
key.Add("a");
key.Add("b");
key.Add("a");
key.Add("b");
val.Add(1);
val.Add(2);
val.Add(3);
val.Add(4);
val.Add(5);

for (int index = 0; index < 5; index++)
{

if (testList.ContainsKey(key[index]))
{
testList[key[index]].Add(val[index]);
}
else
{
tempList.Clear();
tempList.Add(val[index]);
testList.Add(key[index], tempList);
}
}
lv1.ItemsSource = testList["a"];
lv2.ItemsSource = testList["b"];

解决方法:

将 else 代码部分替换为:

testList.Add(key[index], new List { val[index] });

感谢大家的帮助 =)

最佳答案

您正在为字典中的两个键使用相同的列表

    for (int index = 0; index < 5; index++)
{
if (testList.ContainsKey(key[index]))
{
testList[k].Add(val[index]);
}
else
{
testList.Add(key[index], new List<long>{val[index]});
}
}

当键不存在时,只需创建一个新的 List(Of Long),然后将 long 值添加到其中

关于c# - 将项目添加到字典中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14991688/

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