2012-10-14 97 views
1

代码我尝试至极不工作:如何将列表项添加到RichTextBox?

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是关键,例如谷歌是价值。

现在在这种情况下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。

列表被构建为重点,价值在我的硬盘FHR格式的文本文件是这样的:

http://www.cnet.com,cnet 

然后在构造IM从文本文件中读取并放回钥匙,值到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(); 
      } 
     } 

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

enter image description here

+0

你的foreach是正确的,也许你的LocalyKeyWords被定义为不正确。在运行时使用断点检查LocalyKeyWords的值 –

+0

将LocalyKeyWords类的来源添加到您的问题 –

+0

“*但是我没有按照我做的方式得到它。”*“ 你得到了什么**? – wasyl

回答

1

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

0

您需要迭代Value中的字符串或仅报告Value中的第一个字符串。你得到的是List的ToString()。 我很好奇你是否真的需要List的值,因为你的例子只有一个本地关键字。也许你应该创建一个字典来代替。