【问题标题】:How do add List items to a RichTextBox?如何将列表项添加到 RichTextBox?
【发布时间】:2012-10-14 16:12:18
【问题描述】:

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

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

        }

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

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。

List是建成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();
            }
        }

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

【问题讨论】:

  • 您的 foreach 是正确的,也许您的 LocalyKeyWords 定义不正确。在运行时使用断点检查 LocalyKeyWords 的值
  • 将 LocalyKeyWords 类的来源添加到您的问题中
  • "但我没有按照我的方式得到它。"你得到什么
  • wasyl 我在richTextBox 中得到的是: System.Collections.Generic.List'1[System.String]Url: cnet.com --- Localy KeyWord: cnet 而我想看到的是仅限:网址:cnet.com --- 本地关键字:cnet
  • 我使用的 LocalyKeywords List 源的行在我的 Form1 的顶部: Dictionary> LocalyKeyWords = new Dictionary>();

标签: c#


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2016-07-05
      • 2012-02-10
      • 2017-07-14
      • 2018-04-04
      • 1970-01-01
      • 2017-08-26
      • 2019-11-26
      相关资源
      最近更新 更多