最近我寫了利用Lambda表達式一塊的C#代碼:MenuItemCollection與列表<MenuItem>
var dynMenu = new List<MenuItem>();
// some code to add menu items to dynMenu
if (!dynMenu.Any(x => x.Text == controller))
{
// do something
}
雖然要通過我的代碼,我發現每個菜單項本身有一個名爲ChildItems屬性,它恰好是鍵入MenuItemCollection。有趣的是,我想我會用這個MenuItemCollection替換我的MenuItem列表。
改變後的第一行:
var dynMenu = new MenuItemCollection();
我注意到,這MenuItemCollection類型有像 「任何<>」 沒有擴展方法, 「所有<>」, 「第一<>」 等,等 - 我覺得很奇怪。
有沒有辦法在這裏使用Lambda表達式?
我應該回去使用「列表< < \ MenuItem>」嗎?
使用OfType
@Darren,應該給出答案。 – 2010-06-18 17:43:57
你的意思是這樣嗎? dynMenu.AsQueryable()。OfType