如何让程序在使用字典后显示单词?

时间:2014-08-22 03:52:05

标签: c#

我正在使用Windows Form Application,在应用程序中,有两个丰富的Textbox和一个Button,我希望RichTextbox 2显示RichTextbox 1使用Dictionary后。如何做到这一点?Button的代码是什么?

public Form1()
{
    InitializeComponent();
    Dictionary<char, string> dictionary = new Dictionary<char, string>();
    dictionary.Add('a', "%");
    dictionary.Add('A'," %");
    dictionary.Add('b', " &");
    dictionary.Add('B', " &");
    dictionary.Add('c', " <");
    dictionary.Add('C', " <");
}

private void button_Click(object sender, EventArgs e)
{
    second_richtextbox=  (???)
}

因此,当我输入cab时,它将转换为&#34;&lt;%&amp;&#34; 我想将这封信翻译成不同的符号。

2 个答案:

答案 0 :(得分:1)

这是使用LINQ的一种方法:

private void button_Click(object sender, EventArgs e)
{
    second_richtextbox.Text = string.Join("",
        first_richtextbox.Text
            .Select(ch => 
                dictionary.ContainsKey(ch) ? dictionary[ch] : ch.ToString()));
}

或者使用循环和StringBuilder更简单的方式(我可能会这样做):

var result = new StringBuilder();

for (int i = 0; i < first_richtextbox.Text.Length; i++)
{
    if (dictionary.ContainsKey(text[i]))
    {
        result.Append(dictionary[text[i]]);
    }
    else 
    {
        result.Append(text[i]);
    }
}

second_richtextbox.Text = result.ToString();

答案 1 :(得分:0)

在按钮的Click事件

上试用此代码
 string frstvalue = richTextBox1.Text;
        string finalvalue = "";
        char[] a = richTextBox1.Text.ToArray();
        foreach (char c in a)
        {
            if (dictionary.ContainsKey(c))
            { 
                string value = dictionary[c];
                finalvalue += value;
            }
        }
        richTextBox2.Text = finalvalue;

我希望它会有所帮助