一个list里有数字 1, 2, 3
我在读取这个list后, 第一次读是 1,2,3
第二次读是2,1,3
第三次读是3,1,2
第四次读是3,2,1每次读取这个list都显示不同的排序. 应该怎么做呢?

解决方案 »

  1.   

    什么LIST?List<int>?
    每次读都不一样你想随机还是要一定规律?
      

  2.   

    不可能,肯定是你修改了这个list,否则次序不会改变,
      

  3.   

    List本质上是数组,不会自己随便变更,应该是你在for循环内做了某些操作导致的
      

  4.   

    现在的需求是:
    一个list里有数字 1, 2, 3
    我在读取这个list后, 第一次读是 1,2,3
    第二次读是2,1,3
    第三次读是3,1,2
    第四次读是3,2,1每次读取这个list都显示不同的排序.  应该怎么实现呢?
      

  5.   


            static void Main(string[] args)
            {
                List<int> list = new List<int> { 1, 2, 3 };
                List<List<int>> result = new List<List<int>>();
                Sort(list, 0, list.Count - 1, ref result);
                result.ForEach(x => { x.ForEach(y => Console.Write(y)); Console.WriteLine(); });
                Console.ReadLine();
            }
            public static void Sort(List<int> list, int i, int n, ref List<List<int>> result)
            {
                if (n == i)
                {
                    List<int> temp = new List<int>();
                    foreach (int l in list)
                        temp.Add(l);
                    result.Add(temp);
                }
                else
                {
                    for (int j = i; j <= n; j++)
                    {
                        Change(list, i, j);
                        Sort(list, i + 1, n, ref result);
                        Change(list, i, j);
                    }
                }
            }
            public static void Change(List<int> list, int a, int b)
            {
                int temp = list[a];
                list[a] = list[b];
                list[b] = temp;
            }
    /*
    123
    132
    213
    231
    321
    312*/
      

  6.   

    list=list.OrderBy(l=>Guid.NewGuid()).ToList();