【问题标题】:Foreach object loopForeach 对象循环
【发布时间】:2013-05-20 04:49:22
【问题描述】:

我已经编码:

foreach (KeyValuePair<string, object> keyValuePair in items)
{
    if (keyValuePair.Key == "animals")
    {
        Dictionary<string, object> animal = new Dictionary<string, object>();
        animal.Add(keyValuePair.Key, keyValuePair.Value);
        object animalObject = keyValuePair.Value;
        foreach (??? in animalObject)
        {

        }
    }
    object fajny = keyValuePair.Value;

    result2 = fajny as ArrayCollection;
}

我想从animalObject对象循环字典元素:

http://scr.hu/0tgp/6dteu http://screenshu.com/static/uploads/temporary/1h/1p/05/3p9fyc.jpg

我不知道该怎么做。我无法在任何地方搜索帮助。

【问题讨论】:

  • object 是什么
  • 使用 var 或其他对象应该可以让你这样做,但你的代码看起来很奇怪,你没有定义任何东西
  • 你的 animalObject 的底层对象类型是什么?我假设它是某种集合,因为您正在尝试对其进行迭代。
  • 如果你在items 中的Value 在普通的object 之外还有其他意义,那么你应该改用Dictionary&lt;string, SomeCollection&gt;
  • 我不知道你为什么要循环字典来查找“动物”。你应该可以做到:foreach (var animal in items["animals"]) { }

标签: c# loops object foreach


【解决方案1】:

您可以尝试转换为 IEnumerable,但我建议尝试保留强类型。

foreach (KeyValuePair<string, object> keyValuePair in items)
{
    if (keyValuePair.Key == "animals")
    {
        Dictionary<string, object> animal = new Dictionary<string, object>();
        animal.Add(keyValuePair.Key, keyValuePair.Value);
        IEnumerable animalObject = keyValuePair.Value as IEnumerable;

        if(animalEnumerable != null)
        {
            foreach (object animalObj in animalEnumerable)
            {

            }
        }
    }
}

【讨论】:

    【解决方案2】:

    您是否尝试遍历字典中的值:animal

        foreach (object animalObject in animal.Values)
        {
    
        }
    

    【讨论】:

    猜你喜欢
    • 2010-10-31
    • 1970-01-01
    • 2015-03-27
    • 2015-03-26
    • 2016-02-10
    • 1970-01-01
    • 2016-11-28
    • 2011-12-20
    • 1970-01-01
    相关资源
    最近更新 更多