【发布时间】:2011-08-05 09:26:00
【问题描述】:
我有以下代码:
// Iterate through the root menu items in the Items collection.
foreach (MenuItem item in NavigationMenu.Items)
{
if (item.NavigateUrl.ToLower() == ThisPage.ToLower())
{
item.Selected = true;
}
}
我想要的是:
var item = from i in NavigationMenu.Items
where i.NavigateUrl.ToLower() == ThisPage.ToLower()
select i;
然后我可以设置item 的Selected 值,但它给了我NavigationMenu.Items 的错误。
错误 5 找不到查询模式的实现 源类型“System.Web.UI.WebControls.MenuItemCollection”。 '在哪里' 未找到。考虑明确指定范围的类型 变量“我”。
当我注释掉 where 子句时,我收到此错误:
错误 22 找不到查询模式的实现 源类型“System.Web.UI.WebControls.MenuItemCollection”。 '选择' 未找到。考虑明确指定范围的类型 变量“我”。
【问题讨论】:
-
为了将来参考,真的值得阅读错误消息 - 它给出了与我完全相同的建议:明确指定范围变量的类型。
-
当我注释掉 Linq 语句的
where部分时,就会出现该消息。当我取消注释where语句时,它给了我一个不同的错误。 -
@Neil:那个错误信息是什么?一般来说,在这样的问答网站上,如果不指定错误消息本身,就说“它给了我一个错误”绝不是一个好主意。
-
@Neil:这不是一个 非常 不同的错误消息 - 它仍然准确地告诉你需要做什么来修复它:)
标签: c# linq navigationbar