C# 更改特定键的哈希表值

C# 更改特定键的哈希表值,c#,.net,C#,.net,当用户单击confirm and review button respactive(键,值)对存储在哈希表中时,当用户单击review button而不是特定列表项elments颜色为红色时,我想要的是,如果使用review button添加(键,值)对,则如果用户单击confirm button,我想更改其值,简而言之(键,值)对我正在存储(问题,答案),所以如果用户不确定答案,然后单击review,稍后他应该能够更改其答案并标记为confirm,以便此列表项元素的颜色变为绿色,我该如何做

当用户单击confirm and review button respactive(键,值)对存储在哈希表中时,当用户单击review button而不是特定列表项elments颜色为红色时,我想要的是,如果使用review button添加(键,值)对,则如果用户单击confirm button,我想更改其值,简而言之(键,值)对我正在存储(问题,答案),所以如果用户不确定答案,然后单击review,稍后他应该能够更改其答案并标记为confirm,以便此列表项元素的颜色变为绿色,我该如何做

 private void AddtoHashTabl(string key, string value)
            {
                if (hashtable.ContainsKey(key))
                {

                }
                else
                {
                    hashtable.Add(key, value);
                }
            }
    private void Confirm_Click(object sender, EventArgs e)
            {
                string Q = "";
                string A = "";
                listView1.Items[Convert.ToInt16(listView1.SelectedItems[0].SubItems[0].Text) - 1].BackColor = Color.Green;

                var q = Convert.ToInt16(listView1.SelectedItems[0].Text);
                var selectedQuestion = questions[q - 1];
                Q = selectedQuestion.Id;
                if (radioButton12.Checked == true)
                    A = "1";
                else if (radioButton11.Checked == true)
                    A = "2";
                if (radioButton10.Checked == true)
                    A = "3";
                if (radioButton9.Checked == true)
                    A = "4";

                AddtoHashTabl(Q, A);
            }
    private void Review_Click(object sender, EventArgs e)
            {
                string Q = "";
                string A = "";
                listView1.Items[Convert.ToInt16(listView1.SelectedItems[0].SubItems[0].Text) - 1].BackColor = Color.Red;

                var q = Convert.ToInt16(listView1.SelectedItems[0].Text);
                var selectedQuestion = questions[q - 1];
                Q = selectedQuestion.Id;
                if (radioButton12.Checked == true)
                    A = "1";
                else if (radioButton11.Checked == true)
                    A = "2";
                if (radioButton10.Checked == true)
                    A = "3";
                if (radioButton9.Checked == true)
                    A = "4";

                AddtoHashTabl(Q, A);
            }
提前感谢您的帮助

只需使用索引器:

hashtable[key] = value;
这将设置或添加一个值,这样您就可以用索引设置器调用替换任何
AddtoHashTabl
调用

请注意,如果可能的话,最好使用一个通用集合,如
字典
。非通用集合现在很少有用


编辑:为了知道值来自于review或confirm按钮,我建议单独收集(例如
HashSet
)的“确认响应”。或者,甚至只是两个单独的哈希表,每个按钮一个。或者,您可以有一个
答案
类,其中包含值及其状态是否已确认。

是的,我可以使用indexer,但我如何检查我存储的值是否来自确认按钮或查看按钮,因为如果它使用确认按钮,则不应使用n我不允许更改该值,您能告诉我如何使用
字典
@Durga:啊,我明白了。等一下……如果我使用两个saperate哈希表,我需要将更改后的值从review哈希表转移到confirm哈希表中,以确认哈希表。我如何才能做到这一点?我可以得到这两个saperate哈希表的合并计数吗?@Durga:那么y有什么你试过了吗?恐怕我不会给你所有的代码-你真的需要自己考虑一下。我试过用两个saperate
Dictionary
并在不同的Dictionary中存储不同按钮的值,但是现在我如何使用answer类和两个Dictionary的合并计数来获取审阅值的状态?