そのような構造では:
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;
}