So che ci sono un paio di domande formulate in modo simile su SO riguardo la quotazione delle permutazioni, ma non sembrano affrontare proprio quello che sto cercando. So che c'è un modo per farlo, ma sto disegnando un vuoto. Ho un file flat che assomiglia a questo formato:Dividere e unire più "rami" logici di dati di stringa
Col1|Col2|Col3|Col4|Col5|Col6
a|b,c,d|e|f|g,h|i
. . .
Ora ecco il trucco: Voglio creare un elenco di tutte le possibili permutazioni di queste righe, in cui un elenco separato da virgole nella riga rappresenta i valori possibili. Ad esempio, dovrei essere in grado di prendere un IEnumerable<string>
che rappresenta quanto sopra alle righe in quanto tale:
IEnumerable<string> row = new string[] { "a", "b,c,d", "e", "f", "g,h", "i" };
IEnumerable<string> permutations = GetPermutations(row, delimiter: "/");
Questo dovrebbe generare la seguente raccolta di dati stringa:
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
Questo per me sembra che sarebbe si adatta elegantemente a un metodo ricorsivo, ma a quanto pare ho un brutto caso del lunedì e non riesco a capire come avvicinarsi. Qualche aiuto sarebbe molto apprezzato. Che aspetto dovrebbe avere GetPermutations(IEnumerable<string>, string)
?
È questo compito? –
Hah no, mi sto avvicinando 40, ma grazie per averlo chiesto. No, questo è per un'applicazione pubblicitaria. Sto cercando di leggere un file di configurazione per le pagine in cui verranno pubblicati annunci specifici. –
Hai qualche codice o pseudo-codice a portata di mano? Pubblicazione che può aiutare a ottenere la risposta che stai cercando di raggiungere. Posso pensare ad un paio di modi per farlo forza bruta, ma non sono stato in grado di ridefinirlo in un metodo ricorsivo (ancora). – Tim