Ich habe ein Wörterbuch wie folgt aus (Beispieldaten so macht es keinen Sinn machen):Iterieren Nicht-Quadrat (Art) Matrix
Dictionary<char, string[]> codes = new Dictionary<char, string[]>();
string[]
eine Reihe möglicher Ersatz für den Schlüssel des Dictionary ist.
das Wörterbuch mit einigen Beispieldaten Auffüllen ...
codes.Add("A", new string[] {"噅噅", "裧", "頖", "11"});
codes.Add("B", new string[] {"垥", "2", "鉠"});
codes.Add("C", new string[] {"33", "韎"});
codes.Add("D", new string[] {"櫋", "緟", "嘕", "鈖", "灡", "犅"});
...
codes.Add("T", new string[] {"濇", "汫", "岕", "5"});
...
Nun lässt „codieren“ das folgende Wort:
char[] charArray = "act".ToCharArray();
foreach (char c in charArray) {
string[] replacements = codes[c].Where(x => !String.IsNullOrEmpty(x)).ToArray();//removing empty elements
...
}
ich nicht meinen Kopf wickeln kann jetzt auf das, was als nächstes zu tun, Ich möchte eine Liste aller möglichen Kombinationen haben, sollte eine Liste wie folgt (für das Wort "Akt") zurückgeben:
噅 噅 韎 5
裧 33 濇
裧 33 汫
裧 33 岕
裧 335
裧 韎 濇
裧 韎 汫
裧 韎 岕
...
Es können nicht alle Kombinationen zeigen wegen Spamfilters ... Stackoverflow
Dies wäre ziemlich leicht mit Rekursion gelöst werden. – dharms
@dharms interessant. Wo soll ich die rekursive Methode nennen? Für jeden "Schlüssel"? – Cornwell
Übergeben Sie in zwei Strings, was Sie wollen, codiert und den aktuellen Zweig der codierten Zeichenfolge bisher. Der erste Anruf würde etwa so aussehen: "Kodieren (" act "," ");" – dharms