У меня есть приложение WPF, которое имеет 2 текстовых поля, одно из которых заполняется зашифрованным текстом (из txt-файла), а одно из них заполняется ссылочным текстом (также из txt-файла). Я должен посчитать, сколько раз каждый символ алфавита повторяется в обоих текстах, и просто переключать символы, чтобы зашифрованный текст расшифровывался.
Теперь мне нужно переключать символы, где количество повторений в оба текста одинаковы (или если это одно и то же количество повторений, просто возьмите первый) и примените его к зашифрованному текстовому полю (поэтому, когда я нажму на кнопку расшифровки, это изменит буквы в текстовом поле).
Вот код, который у меня пока есть:
public partial class MainWindow : Window
{
public static SortedDictionary<char, int> Count(string stringToCount)
{
SortedDictionary<char, int> characterCount = new SortedDictionary<char, int>();
foreach (var character in stringToCount)
{
int counter = 0;
characterCount.TryGetValue(character, out counter);
characterCount[character] = counter + 1;
}
return characterCount;
}
public MainWindow()
{
InitializeComponent();
}
private void button2_Click(object sender, RoutedEventArgs ex) //Decipher button
{
var ciphered = Count(textBox.Text);
var referenced = Count(textBox1.Text);
var deciphered= "";
foreach (var val in ciphered)
{
foreach (var x in referenced)
{
if (val.Value == x.Value)
{
deciphered = textBox.Text.Replace(val.Key.ToString(), x.Key.ToString());
}
}
}
textBox.Text = deciphered;
}
}
Вышеприведенный код "вроде" работает, но мне приходится нажимать кнопку несколько раз, когда это нужно сделать одним щелчком мыши. .
Вся помощь будет принята с благодарностью!