遍历的话。。foreach就可以了 

解决方案 »

  1.   

    本帖最后由 caozhy 于 2014-05-27 10:23:52 编辑
      

  2.   

    我的表达有点不清楚,应该是二维数组,要把第一维度做笛卡尔积。
    比如a[1]={1,2,3};a[2]={4,5,6},a[n]={...}。
    那么我想得{1,4,..},{1,5,..},{1,6,...},{2,4,..},{2,5,..},{2,6,...},{3,4,..},{3,5,..},{3,6,...}这样的结果集。
      

  3.   

    int[, , ,] data = new int[1, 2, 3, 4];
    data[0, 1, 2, 3] = 123;
    IEnumerable<IEnumerable<long>> query = Enumerable.Range(0, data.GetLength(0)).Select(x => new long[] { x });
    for (int i = 1; i < data.Rank; i++)
    {
        query = query.SelectMany(x => Enumerable.Range(0, data.GetLength(i)).Select(y => x.Concat(new long[] { y }))).ToList();
    }
    foreach (var item in query)
    {
        Console.WriteLine("data[{0}] = {1};", string.Join(",", item), data.GetValue(item.ToArray()));
    }data[0,0,0,0] = 0;
    data[0,0,0,1] = 0;
    data[0,0,0,2] = 0;
    data[0,0,0,3] = 0;
    data[0,0,1,0] = 0;
    data[0,0,1,1] = 0;
    data[0,0,1,2] = 0;
    data[0,0,1,3] = 0;
    data[0,0,2,0] = 0;
    data[0,0,2,1] = 0;
    data[0,0,2,2] = 0;
    data[0,0,2,3] = 0;
    data[0,1,0,0] = 0;
    data[0,1,0,1] = 0;
    data[0,1,0,2] = 0;
    data[0,1,0,3] = 0;
    data[0,1,1,0] = 0;
    data[0,1,1,1] = 0;
    data[0,1,1,2] = 0;
    data[0,1,1,3] = 0;
    data[0,1,2,0] = 0;
    data[0,1,2,1] = 0;
    data[0,1,2,2] = 0;
    data[0,1,2,3] = 123;
    Press any key to continue . . .