我有一些字典对象被梳理得到一个值,但是当我检查它们是否包含密钥时,它们都返回null,而密钥返回true的那个。我也可以使用foreach来检查每一个以获得基于该键的值....我很迷失
foreach (var item in treeView.SelectedItems)
{
string reportName = item.Header.ToString();
string reportPath = "";
reportsAvail.TryGetValue(reportName, out reportPath);
reports.TryGetValue(reportName, out reportPath);
additionalReports.TryGetValue(reportName, out reportPath);
bool test;
test = reportsAvail.ContainsKey(reportName);
test = reports.ContainsKey(reportName);
test = additionalReports.ContainsKey(reportName);
foreach (var y in reportsAvail)
{
if (y.Key.ToString() == reportName)
{
textBlock1.Text = y.Value;
reportPath = y.Value;
}
}
}
使用它有什么奇怪的工作......我不确定是什么阻止了它
答案 0 :(得分:3)
您正在使用TryGetValue
三次,而且每次都会覆盖reportPath
。因此,即使第一个或第二个包含reportName
,如果第三个包含reportPath
,null
将再次包含bool reportFound = reportsAvail.TryGetValue(reportName, out reportPath);
if(!reportFound)
reportFound = reports.TryGetValue(reportName, out reportPath);
if(!reportFound)
reportFound = additionalReports.TryGetValue(reportName, out reportPath);
。
也许这可以解决它:
{{1}}