在这样的结构:更新内部解释为价值外字典
Dictionary<myObject, Dictionary<myEnum, secondObject>> myDict;
我用foreach
搜索所有项目外Dictionary
:
foreach (var elem in myDict)
{
//I need to make some modifications in inner Dictionary for chosen myEnum
}
如何做到这一点?
在这样的结构:更新内部解释为价值外字典
Dictionary<myObject, Dictionary<myEnum, secondObject>> myDict;
我用foreach
搜索所有项目外Dictionary
:
foreach (var elem in myDict)
{
//I need to make some modifications in inner Dictionary for chosen myEnum
}
如何做到这一点?
foreach
循环在Dictionary
枚举键值对。关键是在elem.Key
;该值(即您的目标内部字典)为elem.Value
。
foreach (var elem in myDict)
{
//I need to make some modifications in inner Dictionary for chosen myEnum
Dictionary<myEnum, secondObject> inner = elem.Value;
inner[myEnum.EnumVal1] = new secondObject(123);
inner[myEnum.EnumVal2] = new secondObject(456);
}
你很接近,似乎你对获得内部字典有一些困惑吗?
foreach (var elem in myDict) // var is KeyValuePair<myObject, Dictionary<myEnum, secondObject>>
{
var innerDict = elem.Value; // Value is Dictionary<myEnum, secondObject>
if (innerDict != null)
{
if (innerDict.ContainsKey(enumVal)) // key is myEnum
{
var value = innerDict[enumVal]; // var is secondObject
}
}
}
由于没有详细给出约myObject的或secondObject下面可能会过于宽泛,但至少可以给你一个想法:
foreach (var elem in myDict)
{
var temp = elem.Value.Single(p => p.Key == MyEnum.a);
(temp.Value as MySecondObject).anyProperty = anyValue;
}
你想怎么办? – Jon 2012-07-16 12:40:55