using System.Collections;
using System.Collections.Generic;
public static void Main()
var availablePlayers = new List<Player> {
var threemencombos = availablePlayers.DifferentCombinations(3).ToList();
var twomencombos = availablePlayers.DifferentCombinations(2).ToList();
Console.WriteLine("***********Three men Combos ************");
threemencombos.ForEach(combination => Console.WriteLine(string.Join(",", (IEnumerable<Player>)combination.ToArray())));
Console.WriteLine("***********Two men Combos ************");
twomencombos.ForEach(combination => Console.WriteLine(string.Join(",", (IEnumerable<Player>)combination.ToArray())));
public Player(string name)
public override string ToString()
public string Name {get;set;}
public static IEnumerable<IEnumerable<T>> DifferentCombinations<T>(this IEnumerable<T> elements, int k)
return k == 0 ? new[] { new T[0] } :
elements.SelectMany((e, i) =>
elements.Skip(i + 1).DifferentCombinations(k - 1).Select(c => (new[] {e}).Concat(c)));