一位数组可以用foreach语句实现遍历,二位数组是否可以呢?》!
for(int i=0;i<row;i++)
{
 foreach(int num in arr[])
    console.write(num+"");
}
console.readline();红色的部分该如何表示呢?求各位大大给个解决办法!3q!

解决方案 »

  1.   

    你可以实现一个迭代器
    IEnumerable<T> ArrayItems<T>(T[,] data, int colindex)
    {
        for (int i = 0; i < data.GetLength(1); i++)
        {
            yield return data[colindex, i];
        }
    }然后for(int i=0;i<row;i++)
    {
     foreach (int num in ArrayItems(arr, i))
      console.write(num+"");
    }
      

  2.   

    代码可以简化下:
    IEnumerable<T> ArrayItems<T>(T[,] data, int colindex)
    {
        return data.Cast<T>().Skip(data.GetLength(1) * colindex).Take(data.GetLength(1));
    }
      

  3.   

    可以用for循环遍历,比较简洁:
    int[,] values = { { 1, 2 }, { 3, 4 }, { 5, 6 } };
    for (int i = 0; i < values.GetLength(0); i++)
    {
    for (int j = 0; j < values.GetLength(1); j++)
    Console.Write(values[i, j] + " ");
    Console.WriteLine();
    }
    Console.ReadKey();
      

  4.   

    对于交错数组,由于是数组的数组,可以用foreach嵌套实现:
    int[][] values = { new int[] { 1, 2 }, new int[] { 3, 4 }, new int[] { 5, 6 } };
    foreach (int[] value in values)
    {
    foreach (int v in value)
    Console.Write(v + " ");
    Console.WriteLine();
    }
    Console.ReadKey();