我对一些字典对象进行了梳理以获得值,但它们都返回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;
}
}
}
奇怪的是它曾经工作过。。。我不确定是什么阻止了它
您使用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);