0

在 .cshtml 中,我想检查 a 中是否存在密钥,Directory<int, Object>但总是出错并且找不到原因。

这是我的代码:

@foreach (KeyValuePair<int, int> weekAndYear in @ViewBag.WeekAndYears)
{
    int key = int.Parse(weekAndYear.Value + "" + weekAndYear.Key);

    bool exist = ViewBag.Menus.ContainsKey(key);
}

我得到的错误:

The best overloaded method match for System.Collections.Generic.Dictionary<int,Object>.this[int] has some invalid arguments

当我只使用 .Key 或 .Value 时,它​​仍然有效。

编辑 - 解决方案

问题是什么,我不知道,但我已经用下面的代码解决了这个问题:

foreach (KeyValuePair<int, int> weekAndYear in @ViewBag.WeekAndYears)
    {
        int key = int.Parse(weekAndYear.Value + "" + weekAndYear.Key);

        bool exist = ((Dictionary<int, Object>)ViewBag.Menus).ContainsKey(key);
}
4

2 回答 2

0

您是否可以尝试使用 TryGetValue 而不是 ContainsKey 并查看它是否有效:

@foreach (KeyValuePair<int, int> weekAndYear in @ViewBag.WeekAndYears)
{
    int key = int.Parse(weekAndYear.Value + "" + weekAndYear.Key); 
    Object outValue;
    bool exist = Menus.TryGetValue(key, out outValue);
}
于 2014-08-01T09:44:32.980 回答
0

问题是什么,我不知道,但我已经用下面的代码解决了这个问题:

foreach (KeyValuePair<int, int> weekAndYear in @ViewBag.WeekAndYears)
    {
        int key = int.Parse(weekAndYear.Value + "" + weekAndYear.Key);

        bool exist = ((Dictionary<int, Object>)ViewBag.Menus).ContainsKey(key);
}
于 2014-08-05T11:44:01.443 回答