动态创建可变长度数组和全排列,欢迎交流
.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()));