Comment Générer des Combinaisons d'Éléments d'une Liste<T>.NET 4.0

J'ai une question qui est similaire, mais pas identique, à la a répondu ici.

Je voudrais une fonction de générer tous les k-combinaisons d'éléments à partir d'une Liste de n éléments. Notez que je suis à la recherche de combinaisons, pas de permutations, et que nous avons besoin d'une solution pour des k (c'est à dire, le codage en dur des boucles est un non-non).

Je suis à la recherche d'une solution qui est un) élégant, et b) peut être codée dans VB10/.Net 4.0.

Cela signifie a) des solutions nécessitant LINQ sont ok, b) les personnes utilisant le C# "rendement" de la commande ne sont pas.

L'ordre de la combinaisons n'est pas important (c'est à dire, lexicographiques, Gray-code, qu'est-ce-avez-vous) et de l'élégance est favorisée par rapport à la performance, si les deux sont en conflit.

(En OCaml et C# solutions ici serait parfait, si elles pouvaient être codé dans VB10.)

OriginalL'auteur Michael Dorfman | 2009-07-13