如何列出字符串/整数的所有排列?
发布于 2018-02-11 09:34:51
这是我的通用函数,它可以从T列表中返回所有排列(不是组合):
static IEnumerable<IEnumerable<T>>
GetPermutations<T>(IEnumerable<T> list, int length)
{
if (length == 1) return list.Select(t => new T[] { t });
return GetPermutations(list, length - 1)
.SelectMany(t => list.Where(e => !t.Contains(e)),
(t1, t2) => t1.Concat(new T[] { t2 }));
}
例:
IEnumerable<IEnumerable<int>> result =
GetPermutations(Enumerable.Range(1, 3), 3);
输出 - 整数列表的列表:
{1,2,3} {1,3,2} {2,1,3} {2,3,1} {3,1,2} {3,2,1}
https://stackoverflow.com/questions/-100003482
复制相似问题