c# - 更改特定键的哈希表值

标签 c# .net

<分区>

当用户单击确认和查看按钮时,respactive(key,value) 对存储在哈希表中,当用户单击查看按钮时,特定列表项元素的颜色为红色,我想要的是 if (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);
            }

在此先感谢您的帮助

最佳答案

只需使用索引器:

hashtable[key] = value;

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

请注意,您最好使用通用集合,例如 Dictionary<TKey, TValue>如果可能的话。如今,非通用集合很少有用。

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

关于c# - 更改特定键的哈希表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18267896/

相关文章:

c# - 具有多个获取和参数的 Asp.net mvc api

c# - 用于白名单字符的 .NET 正则表达式

c# - 每行打印出数组中的 3 个元素

c# - 忽略/覆盖 AttributeUsage 限制

c# - 获取 ICollection<T> 实现类的类型参数

c# - 从另外两个创建动态表达式 lambda(链接表达式)

c# - 文件夹中可以存储的文件/文件夹是否有限制?

c# - 通过网络服务在客户中引发事件

c# - 使用 String.IsNullOrEmpty(string) 和 Nhibernate 创建动态 Linq 表达式

c# - 适当使用 BlockingCollection