SOには、順列リストについて同様の言葉で書かれた質問がいくつかあることは知っていますが、それらは私が探しているものに完全には対応していないようです。これを行う方法があることは知っていますが、空白を描画しています。この形式に似たフラットファイルがあります。
Col1|Col2|Col3|Col4|Col5|Col6
a|b,c,d|e|f|g,h|i
. . .
ここに秘訣があります。これらの行のすべての可能な順列のリストを作成したいと思います。ここで、行のコンマ区切りのリストは可能な値を表します。たとえばIEnumerable<string>
、上記を行に表すようにすると、次のようになります。
IEnumerable<string> row = new string[] { "a", "b,c,d", "e", "f", "g,h", "i" };
IEnumerable<string> permutations = GetPermutations(row, delimiter: "/");
これにより、次の文字列データのコレクションが生成されます。
a/b/e/f/g/i
a/b/e/f/h/i
a/c/e/f/g/i
a/c/e/f/h/i
a/d/e/f/g/i
a/d/e/f/h/i
これは私には再帰的な方法にエレガントに適合するように思えますが、どうやら私は月曜日の悪いケースを持っており、それにアプローチする方法について頭を悩ませることはできません。いくつかの助けをいただければ幸いです。どのGetPermutations(IEnumerable<string>, string)
ように見えるべきですか?