我有一個菜單,我禁用某些組的某些選項。它是大約10個輸入的下拉菜單。當我像這樣運行RemoveAt(索引)刪除菜單中的每個替代項目,而不是索引
menuMain.Items[0].ChildItems.RemoveAt(0);
menuMain.Items[0].ChildItems.RemoveAt(1);
menuMain.Items[0].ChildItems.RemoveAt(2);
menuMain.Items[0].ChildItems.RemoveAt(3);
menuMain.Items[0].ChildItems.RemoveAt(4);
menuMain.Items[0].ChildItems.RemoveAt(5);
代碼,這意味着我要刪除這一個組前6項,我在項目沒有拿到5異常,稱該指數超出範圍。
我發現上面的代碼刪除菜單中的每一個其他項目,而不是被引用的項目。
removes 0th item
removes 2nd item
removes 4rd item
...
removes 10th item
removes 12th item (index not found)
有沒有人知道它爲什麼會這樣?
注:我查了一下在調試模式下的代碼,它指向正確的菜單項是奇數和偶數,它不通過2.
你是天才!有什麼治療,但我可以使用'menuMain.Items [0] .ChildItems.RemoveAt(0);'5次,它會刪除前5個條目。有更好的解決方案 –
@Thecrocodilehunter:你可能想要尋找類似'RemoveRange'的東西 - 它取決於從'ChildItems'返回的類型。 –
這正是我所做的。謝謝! –