在.cshtml中,我想检查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);
}发布于 2014-08-05 11:44:01
问题是什么,我不知道,但我已经用以下代码解决了问题:
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-01 09:44:32
您是否可以尝试使用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);
}https://stackoverflow.com/questions/25076253
复制相似问题