C#dictionary不断将值更改为最后一个附加值。

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

当我尝试将文本框中的新名称和编号添加到词典中,然后尝试将词典的内容添加到列表框中时,所有以前的条目都是相同的。比如我加上“鲍勃·约翰逊42”,“吉姆·史密斯33”,“彼得·怀特21”。当我将其放入列表框时,它将显示为: 彼得·怀特21 彼得·怀特21 彼得·怀特21

我做错了什么? 这是代码

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);