【发布时间】:2013-02-15 12:09:18
【问题描述】:
我希望能够获得这样的清单
var list=new List<int>{0, 1, 2};
得到这样的结果
var result=
new List<List<int>>{
new List<int>{0, 1, 2},
new List<int>{0, 2, 1},
new List<int>{1, 0, 2},
new List<int>{1, 2, 0},
new List<int>{2, 0, 1},
new List<int>{2, 1, 0}
};
我对缺少数字的集合不感兴趣,只对现有数字的组合感兴趣。有什么想法吗?
另外,我已经研究过Getting all possible combinations from a list of numbers 之类的解决方案,但它们不适合。
那个给了我这样的东西
var result=
new List<List<int>> {
// [[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
// serialized the result to JSON so it would be quicker.
};
而且它不会吐出所有的组合。
【问题讨论】:
-
您要查找的是列表中的所有排列。之前在这里被问过很多次:)这是一个非常相似的问题:stackoverflow.com/questions/3319586/…
-
该结果不包括所有项目,它包括排除项目的排列。两个都试过了,都不合适。我找不到任何与您链接的示例不同的工作示例。
-
如何处理重复项?如果给你
0, 1, 1, 1, 2, 2怎么办? -
投票重新讨论这个问题,因为这个 q 是关于排列,而标记为重复的 q 是关于组合。
标签: c# combinations