9

当用户单击确认并查看按钮时,respactive(key,value) 对存储在哈希表中,当用户单击查看按钮而不是特定列表项元素颜色为红色时,我想要的是是否添加了 (key,value) 对如果用户单击确认按钮,则使用评论按钮而不是我想更改其值,简而言之,在这个(键,值)对中,我正在存储(问题,答案),因此如果用户不确定答案,则单击评论,并且稍后他应该能够更改其答案并将其标记为确认,因此此列表项元素颜色变为绿色,我该怎么做

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

提前感谢您的帮助

4

1 回答 1

13

只需使用索引器:

hashtable[key] = value;

这将设置添加一个值 - 因此您可以AddtoHashTabl仅用该索引器设置器调用替换任何调用。

请注意,如果可能的话,最好使用通用集合Dictionary<TKey, TValue>。这些天来,非通用集合很少有用。

编辑:要知道值来自评论或确认按钮的位置,我建议有一个单独的集合(例如 a HashSet<string>)“确认响应”。或者甚至只是两个单独的哈希表,每个按钮一个。或者,您可以拥有一个Answer包含值及其状态是否已确认的类。

于 2013-08-16T07:27:01.797 回答