我尝试的代码无效:
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上使用断点后,我看到:
答案 0 :(得分:1)
你应该遍历kvp.Value,它也是一个列表,所以你必须在richtextbox的列表中添加每个项目。
答案 1 :(得分:0)
您需要遍历Value中的字符串或只报告Value中的第一个字符串。你得到的是List的ToString()。 我很好奇你是否真的需要List的值,因为你的例子每个键只有一个Local Keyword。也许你应该创建一个词典。