如何将List项添加到RichTextBox?

时间:2012-10-14 16:12:18

标签: c#

我尝试的代码无效:

private void clearRichtextBox()
        {
            richTextBox2.Clear();
            foreach (KeyValuePair<string, List<string>> kvp in LocalyKeyWords)
            {
                richTextBox2.AppendText("Url: " + kvp.Key + " --- " + "Localy KeyWord: " + kvp.Value);
            }

        }

LocalyKeyWords是一个List&gt;字典类型。 其中string是Key,List是Value。

例如,

http://www.google.com是关键,谷歌就是价值。

现在,在这种情况下,LocalyKeywords包含3个索引,每个索引都有一个Key和一个Value。 我希望在我清除richTextBox2之后,将List中的所有键和值添加到richTextBox中,格式如下:

Url: http://www.google.com --- Localy Keyword: google
Url: http://www.cnet.com --- Localy Keyword: cnet
Url: http://www.microsoft.com --- Localy Keyword: microsoft

但是我没有按照我的方式来做它。

我该怎么办?我喜欢用FOR而不是foreach来制作一些错误。

列表构建为Key,我硬盘上的文本文件中的值fhr格式如下:

http://www.cnet.com,cnet

然后在构造函数中我从文本文件中读取它并将键和值放回List中,如下所示:

private void richTextBoxLoadKeys(Dictionary<string, List<string>> dictionary, string FileName)
        {
            string line = System.String.Empty;
            using (StreamReader sr = new StreamReader(keywords))
            {
                while ((line = sr.ReadLine()) != null)
                {
                    string[] tokens = line.Split(',');
                    dictionary.Add(tokens[0], tokens.Skip(1).ToList());
                    richTextBox2.AppendText("Url: " + tokens[0] + " --- " + "Localy KeyWord: " + tokens[1]);
                }
                sr.Close();
            }
        }

在构造函数中加载键和值并在List上使用断点后,我看到:

enter image description here

2 个答案:

答案 0 :(得分:1)

你应该遍历kvp.Value,它也是一个列表,所以你必须在richtextbox的列表中添加每个项目。

答案 1 :(得分:0)

您需要遍历Value中的字符串或只报告Value中的第一个字符串。你得到的是List的ToString()。 我很好奇你是否真的需要List的值,因为你的例子每个键只有一个Local Keyword。也许你应该创建一个词典。