【发布时间】:2017-05-23 14:03:16
【问题描述】:
我需要能够从预定义的 int[] 生成 10 个整数的所有可能组合,然后将这些可能的组合作为列表返回。每个组合的长度必须为 5。
例子:
{1, 2, 3, 4, 5},
{2, 3, 4, 5, 6},
{3, 4, 5, 6, 7}, etc.
到目前为止,我有以下内容:
int[] cardFaces = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
List<int[]> combos = new List<int[]>();
// For every value in the cardFaces array, get the value and the index.
foreach (var item in cardFaces.Select((value, i) => new { i, value }))
{
int value = item.value;
int index = item.i;
int value1 = 0;
int value2 = 0;
int value3 = 0;
int value4 = 0;
int value5 = 0;
// Need some nested loop code here, which will create combinations
// from the cardFaces[] with a length of 5.
int[] combo = {value1, value2, value3, value4, value5};
combos.Add(combo);
}
它不应包含任何重复。我对此很陌生,所以我正在努力研究如何解决循环以获得我需要的组合。
【问题讨论】:
-
我认为Producing combinations, part one 可能会有所帮助
标签: c# loops for-loop combinations