C# 从withn foreach循环设置字典值

C# 从withn foreach循环设置字典值,c#,C#,抱歉,如果这是重复的,但找不到任何符合我需要的东西。我有一个对象,其中一个成员是字典对象,定义如下: public class MyTestObject { public int index { get; set; } // various other members here public Dictionary<string, bool> MyTestValues { get; set; } } 我有一个循环,它运行在每个值的instance中,还有一个子

抱歉,如果这是重复的,但找不到任何符合我需要的东西。我有一个对象,其中一个成员是
字典
对象,定义如下:

public class MyTestObject
{
    public int index { get; set; }
    // various other members here
    public Dictionary<string, bool> MyTestValues { get; set; }
}
我有一个循环,它运行在每个值的instance中,还有一个子循环,它运行在字典中的KVP中

foreach (MyTestObject current in values)
{
    foreach (KeyValuePair<string, bool> testCurrent in current.MyTestValues)
    {
    }
}
i、 例如,它使用索引成员访问对象中的字段并更新值。不幸的是,这不起作用,因为它说值字段是只读的

我肯定我在这里会感到不必要的困惑。如果您有任何建议,请执行以下操作:

values[current.index].MyTestValues[testCurrent.Key] = true;
它将更新现有值,如果
不存在,它将使用新键在字典中添加新项

只要做:

values[current.index].MyTestValues[testCurrent.Key] = true;
它将更新现有值,如果
不存在,它将使用新键在字典中添加新项

只要做:

values[current.index].MyTestValues[testCurrent.Key] = true;
它将更新现有值,如果
不存在,它将使用新键在字典中添加新项

只要做:

values[current.index].MyTestValues[testCurrent.Key] = true;



它将更新现有值,如果
不存在,它将使用新键在字典中添加新项

似乎您可以使用
值[current.index].MyTestValues[testCurrent.Key]=true
除非我误解了什么?
我摔倒了
。有什么问题?@hamlet-值字段是只读的。@Andrew不要试图直接修改
KeyValuePair
s。通过索引器访问词典中的项目。您试图在无效的foreach中修改词典的内容?看看这个问题:看起来你可以只使用
值[current.index].MyTestValues[testCurrent.Key]=true
,除非我误解了什么?
我摔倒了。有什么问题?@hamlet-值字段是只读的。@Andrew不要试图直接修改
KeyValuePair
s。通过索引器访问词典中的项目。您试图在无效的foreach中修改词典的内容?看看这个问题:看起来你可以只使用
值[current.index].MyTestValues[testCurrent.Key]=true
,除非我误解了什么?
我摔倒了。有什么问题?@hamlet-值字段是只读的。@Andrew不要试图直接修改
KeyValuePair
s。通过索引器访问词典中的项目。您试图在无效的foreach中修改词典的内容?看看这个问题:看起来你可以只使用
值[current.index].MyTestValues[testCurrent.Key]=true
,除非我误解了什么?
我摔倒了。有什么问题?@hamlet-值字段是只读的。@Andrew不要试图直接修改
KeyValuePair
s。通过索引器访问词典中的项目。您试图在无效的foreach中修改词典的内容?请看这个问题:@Magus,在这种情况下,最好使用
ContainsKey
检查密钥。我的评论是愚蠢的。你说得对
ContainsKey
是进行检查的最佳方式。嗯……我得到的索引超出了范围,这没有多大意义。我将进一步检查,但我认为这是一条路。忽略。我是个白痴,将index的值设置为1而不是0:)@Magus,在这种情况下,最好使用
ContainsKey
检查Key,我的评论是愚蠢的。你说得对
ContainsKey
是进行检查的最佳方式。嗯……我得到的索引超出了范围,这没有多大意义。我将进一步检查,但我认为这是一条路。忽略。我是个白痴,将index的值设置为1而不是0:)@Magus,在这种情况下,最好使用
ContainsKey
检查Key,我的评论是愚蠢的。你说得对
ContainsKey
是进行检查的最佳方式。嗯……我得到的索引超出了范围,这没有多大意义。我将进一步检查,但我认为这是一条路。忽略。我是个白痴,将index的值设置为1而不是0:)@Magus,在这种情况下,最好使用
ContainsKey
检查Key,我的评论是愚蠢的。你说得对
ContainsKey
是进行检查的最佳方式。嗯……我得到的索引超出了范围,这没有多大意义。我将进一步检查,但我认为这是一条路。忽略。我是个白痴,将索引的值设置为1而不是0:)