C#dictionary不断将值更改为最后一个附加值。
当我尝试将文本框中的新名称和编号添加到词典中,然后尝试将词典的内容添加到列表框中时,所有以前的条目都是相同的。比如我加上“鲍勃·约翰逊42”,“吉姆·史密斯33”,“彼得·怀特21”。当我将其放入列表框时,它将显示为: 彼得·怀特21 彼得·怀特21 彼得·怀特21 我做错了什么? 这是代码C#dictionary不断将值更改为最后一个附加值。,c#,dictionary,visual-studio-2015,C#,Dictionary,Visual Studio 2015,当我尝试将文本框中的新名称和编号添加到词典中,然后尝试将词典的内容添加到列表框中时,所有以前的条目都是相同的。比如我加上“鲍勃·约翰逊42”,“吉姆·史密斯33”,“彼得·怀特21”。当我将其放入列表框时,它将显示为: 彼得·怀特21 彼得·怀特21 彼得·怀特21 我做错了什么? 这是代码 private void button1_Click(object sender, EventArgs e) { String name = this.textBox1.Tex
private void button1_Click(object sender, EventArgs e)
{
String name = this.textBox1.Text;
int testNumber = int.Parse(textBox2.Text);
submittedTests.Add(this.textBox1.Text, testNumber);
foreach (var x in submittedTests)
{
listBox1.Items.Add(name + " " + testNumber);
}
}
您正在使用循环外部的
name
和testnumber
的值
foreach (var x in submittedTests)
{
listBox1.Items.Add(name + " " + testNumber);
}
应该是
foreach (var x in submittedTests)
{
listBox1.Items.Add(x.name + " " + x.testNumber);
}
或者如果submittedTests
是词典:
foreach (var x in submittedTests)
{
listBox1.Items.Add(x.Key + " " + x.Value);
}
改变
到
您需要从字典中访问
键
和值
,当前您正在访问局部变量<代码>列表框1.Items.Add(x.Key+“”+x.Value)代码>应该修复它它应该是x.Key
,x.Value
,因为它是一个字典。
private void button1_Click(object sender, EventArgs e)
{
String name = this.textBox1.Text;
int testNumber = int.Parse(textBox2.Text);
submittedTests.Add(this.textBox1.Text, testNumber);
foreach (var x in submittedTests)
{
listBox1.Items.Add(x.Key + " " + x.Value);
}
}
listBox1.Items.Add(name + " " + testNumber);
listBox1.Items.Add(x.Key + " " + x.Value);