【发布时间】:2017-08-14 14:32:27
【问题描述】:
从这个SO question 得到建议,我通过将路径数组转换为 NodeEntryCollection 来填充一个列表视图
NodeEntryCollection nodes = new NodeEntryCollection();
foreach (string line in lines)
{
nodes.AddEntry(line, 0);
}
现在双击列表视图项目我正在使用它。
private void filesList_DoubleClick(object sender, EventArgs e)
{
if (filesList.SelectedItems.Count == 0) return;
if (filesList.SelectedItems[0].Tag.ToString() == "Folder")
{
string key = filesList.SelectedItems[0].Text;
filesList.Clear();
foreach (var item in nodes[key].Children) //Exception thrown here!
{
string fileName = Path.GetFileName(item.Key);
string extension = Path.GetExtension(fileName);
if (item.Value.Children.Count > 0)
{
ListViewItem itmNew = new ListViewItem(item.Key, 0);
itmNew.Tag = "Folder";
filesList.Items.Add(itmNew);
}
else
{
ListViewItem itmNew = new ListViewItem(item.Key, objIconListManager.AddFileIcon(fileName));
itmNew.Tag = "File";
filesList.Items.Add(itmNew);
}
}
}
}
它在第一个目录上运行良好,我可以看到其中的文件,但是当我再次双击子目录时,它会抛出:
[KeyNotFoundException 未处理] 字典中没有给定的键。
【问题讨论】:
-
请将异常添加为文本。图片网址无效。
-
抛出什么异常?
-
*[KeyNotFoundException was unhandled] 给定的键不在字典中。
-
仍然卡在这里。
-
抛出异常时
key的值是多少?
标签: c# dictionary nodes