/// <summary>
/// 组合
/// </summary>
public static void Combination(List<int> list, int nCount, List<int> result = null, int head = 0)
{
if (result == null)
{
result = new List<int>();
}
if (result.Count == nCount)
{
for (int i = 0; i < nCount; i++)
{
Console.Write(result[i] + " ");
}
Console.WriteLine();
}
else
{
for (int i = head; i < list.Count; i++)
{
if (result.Count < nCount)
{
result.Add(list[i]);
Combination(list, nCount, result, i + 1);
result.RemoveAt(result.Count - 1);
}
}
}
}
//测试调用
List<int> list = new List<int>() { 1, 2, 3, 4, 5 };
Combination(list, 3);