例:int[] arrays = {1,2,3,4,5};我想让循环的次数为数组的长度,然后每次循环都会左移一位,
循环一次:2,3,4,5,1;
‘’二次:3,4,5,1,2;
‘’三次:4,5,1,2,3;
‘’四次:5,1,2,3,4;
‘’五次:1,2,3,4,5;我想要解决方案,谢谢。

解决方案 »

  1.   

    长度 arrays.Length左移,先记下第一个,然后后面的覆盖掉前面的,然后把记下的数值写入最后一个
      

  2.   

    1, foreach....
    2, Array.Copy(arrays, 1, toarrays, 0,4);// 先赋值1~5,然后把arrays[0] 付给toarrays[4]3,List<int> l = new ...(arrays);
      l.Add(l[0]);
      l.RemoveAt(0);
      
    感觉最好的方案还是foreach,其它是偷懒
      

  3.   


    喝假酒了,头一直处于迷糊状态,不爱思考问题。麻烦大神给出Demo,谢谢
      

  4.   


    可否给出Demo?我想要Demo。。
      

  5.   


    int[] a = { 1, 2, 3, 4, 5 };
                int temp = 0;
                for (int j = 0; j < a.Length; j++)
                {
                    for (int i = 0; i < a.Length; i++)
                    {
                        if (i + 1 < a.Length)
                        {
                            temp = a[i];
                            a[i] = a[i + 1];
                            a[i + 1] = temp;
                        }
                    }
                }刚写的测试结果可行。
      

  6.   

    List<int> l = new List<int>(arrays);
    l.Add(l[0]);
    l.RemoveAt(0);
    这个就是代码。看来酒还没醒
      

  7.   

    用队列。
    每次把出队的item进行入队。
      

  8.   

                int[] arr = { 1, 2, 3, 4, 5 };
                int temp = 0;
                for (int i = 0; i < arr.Length; i++)
                {
                    temp = i;
                    for (int j = 0; j < arr.Length; j++)
                    {
                        temp = temp + 1 == arr.Length ? 0 : temp + 1;
                        Console.Write(arr[temp].ToString().PadLeft(3, ' '));
                    }
                    Console.WriteLine();
                }