【问题标题】:Update inner Dictionary as Value in outer Dictionary将内部字典更新为外部字典中的值
【发布时间】:2012-07-15 07:28:57
【问题描述】:

在这样的结构中:

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
}

如何做到这一点?

【问题讨论】:

    标签: c# collections .net-4.0 dictionary foreach


    【解决方案1】:

    由于没有提供有关 myObject 或 secondObject 的详细信息,因此以下内容可能过于笼统,但至少可以让您有所了解:

    foreach (var elem in myDict)
    {
        var temp = elem.Value.Single(p => p.Key == MyEnum.a);
        (temp.Value as MySecondObject).anyProperty = anyValue;
    }
    

    【讨论】:

      【解决方案2】:

      你很亲密,看来你只是对访问内部字典有些困惑?

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

      【讨论】:

        【解决方案3】:

        Dictionary 上的 foreach 循环枚举键值对。密钥在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);
        }
        

        【讨论】:

          猜你喜欢
          • 2014-09-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-05-27
          • 2021-01-15
          • 2016-10-29
          • 1970-01-01
          相关资源
          最近更新 更多