none
如何为List数组的下标动态赋值 RRS feed

  • 问题

  • 如:1:List<List<List<object>>>  a=new  List<List<List<object>>> , 这么一个多维数据, 

           2:List<int> index=new List<int>{1,2,4} , 一个list列表;

      现在的需求是:我如何才能吧 index  中的值 按照顺序动态的给 a 这个数组的下标赋值呢, 要的结果是这样:a[1][2][4]    ,数组的数量和变量的深度都不是固定的,

       求解呀,急急, 小弟先谢啦!

     


    efforts..

    2012年7月31日 4:59

全部回复

  • Hi Efforts..._,

      List泛型嵌套不能像数组类型这样用中括号来括起来引用。你必须使用add方法增加元素,以及使用addrange去批量增加元素,它继承自System.Object, 并且它是一个集合,你可以把尖括号里面的内容当成是占位符,可以是一个新的类型。 如果你想让其内部增加新内容,你可以使用下面这种格式:  

     List<List<List<object>>> a = new List<List<List<object>>>();
                List<List<object>> b=new List<List<object>>();
                List<object> c = new List<object>();
                a.Add(b);
                b.Add(c);
                c.Add(1);
                c.Add(2);

      或者使用迭代或者其中的元素进行比较:

     
                foreach (List<List<object>> b in a)
                {
                    foreach (List<object> c in b)
                    {
                        foreach (object d in c)
                        {
                            c.Add(index[0]);
                        }
                    
                    }
    
    
                }

      但是它必须用Item 属性来得到其中的内容,而不能简单的用中括号来得到。

      希望上面的内容对你有帮助。

      

    Jason Wang [MSFT]
    MSDN Community Support | Feedback to us

    2012年8月2日 3:01
    版主
  • hi: Jason Wang 

          非常感谢你的回答,你是说的很对,赋值的方式 确实如你所说 是Add 进去的, 我是把所有的都add 进去之后, 也就是架子:即 占位符 有了, 我就可以这样来使用:a[1][2][4] 这没错吧, 我意思是 现在这下标的值 我存储在一个new List{1,2,4} 列表中, 我想把列表中的值 赋给a 的下标: 即:a[1][2][4],  这样做不知道怎么去赋值给a


    efforts..

    2012年8月2日 3:52