1

我正在尝试的代码不起作用:

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

        }

LocalyKeyWords 是一个 List > 类型的 Dictionary。其中字符串是键,列表是值。

例如, http://www.google.com是键,而 google 是值。

现在在这种情况下,LocalyKeywords 包含 3 个索引,每个索引都有一个 Key 和一个 Value。我希望在清除richTextBox2 后,以如下格式将所有键和值从列表中添加到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

但我没有像我那样做。

我该怎么做 ?foreach 出了点问题,我更喜欢用 FOR 而不是 foreach。

该列表构建为 Key,Value 在我的硬盘 fhr 格式的文本文件中是这样的:

http://www.cnet.com,cnet

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

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();
            }
        }

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

在此处输入图像描述

4

2 回答 2

1

您应该遍历 kvp.Value,它也是一个列表,因此您必须将列表中的每个项目添加到 Richtextbox 中。

于 2012-10-14T17:10:01.727 回答
0

您需要遍历 Value 中的字符串,或者只报告 Value 中的第一个字符串。你得到的是一个列表的 ToString() 。我很好奇您是否真的需要一个 List 作为值,因为您的示例每个键只有一个本地关键字。也许您应该改为创建字典。

于 2012-10-14T17:09:13.697 回答