日期:2014-05-17  浏览次数:20383 次

动态创建可变长度数组和全排列,欢迎交流
.net framework版本4.0

1.快速生成可变长度整型数组:
有一个数字n(n>0),如何用简洁高效的代码实现 int[]arr={0,1,。。。n}数组。

2.全排列,针对1题生成的数组,如何用简洁高效的代码对它进行全排列。

欢迎探讨
数组 全排列

------解决方案--------------------
            List<int> ary=new List<int>();
            ary.Add(1);
            ary.Add(2);
            int[] a = ary.ToArray();
------解决方案--------------------
            int n = 3;
            int[] arr = Enumerable.Range(0, n + 1).ToArray();
            IEnumerable<IEnumerable<int>> query = arr.Select(x => new int[] { x });       
            while (query.First().Count() != arr.GetLength(0))
                query = query.SelectMany(x => arr.Where(y => !x.Contains(y)).Select(y => x.Concat(new int[] { y })));
            foreach (var item in query)
                Console.WriteLine(string.Join(",", item.Select(x => x.ToString()).ToArray()));