使用字典的lambda值从嵌套字典中获取值是ArrayList的ArrayList

时间:2010-09-24 05:48:06

标签: c# linq lambda arraylist

我需要从存储ArrayList的字典中检索值,而ArrayList又具有ArrayList。第二个ArrayList存储了int数组。现在我该如何检索这些整数值。 `

        Dictionary<int, ArrayList> obj = new Dictionary<int, ArrayList>();

        ArrayList objList1 = new ArrayList();

        ArrayList objList2 = new ArrayList();

        ArrayList objList3 = new ArrayList();

        Int32[] a1 = new Int32[5] {11, 21, 32, 43, 50 };
        Int32[] b1 = new Int32[5] { 123, 2321, 3212, 4983, 5760 };
        Int32[] c1 = new Int32[5] { 1341, 2991, 3552, 4663, 5880 };

        objList2.Add(a1);
        objList2.Add(b1);
        objList2.Add(c1);



        objList1.Add(objList2);
        objList1.Add(objList3);

        obj.Add(1, objList1);
        obj.Add(2, objList3);`

这可以通过List轻松完成。我试着用ArrayList解决它。首先是可能的吗?提前致谢。

2 个答案:

答案 0 :(得分:1)

你的意思是这样吗?

foreach(var item in obj.Values
    .SelectMany(x => x.Cast<ArrayList>())
    .SelectMany(x => x.Cast<int[]>())
    .SelectMany(x => x))
{
    Console.WriteLine(item);
}

输出:

11
21
32
43
50
123
2321
3212
4983
5760
1341
2991
3552
4663
5880

答案 1 :(得分:0)

obj
   .SelectMany(x=>x.Value.Cast<ArrayList>())
   .SelectMany(x=>x.Cast<int[]>())
   .SelectMany(x=>x)