Foreach 对象循环

Posted

技术标签:

【中文标题】Foreach 对象循环【英文标题】:Foreach object loop 【发布时间】: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"]) 【参考方案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)
    

    

【讨论】:

scr.hu/0tgp/42s5d 我想将对象 (Dictionary) 从第一个循环到最后一个

以上是关于Foreach 对象循环的主要内容,如果未能解决你的问题,请参考以下文章

foreach 循环对象的方法

stdClass 对象和 foreach 循环

嵌套 foreach 循环读取 .xml 并将对象写入列表

php foreach只能遍历数组么

增强for循环 -- foreach循环

在foreach循环中为对象分配值