2017-01-03 154 views
1

我正在開發一個通用smartTag面板並從我的項目中派生出基礎smartTag。我想在派生的智能標記中添加base smarttag的現有操作項。我想在衍生面板的項目下面添加基礎面板的項目。有沒有簡單的方法來添加基礎項目,而不是直接在行動項目下面使用foreach?如何將現有項目添加到C#中的集合中#

public override DesignerActionItemCollection GetSortedActionItems() 
{ 
    DesignerActionItemCollection actionItems = new DesignerActionItemCollection(); 

    //adds the new smart tag action items. 
    actionItems.Add(new DesignerActionHeaderItem("MySmartTag Support")); 
    actionItems.Add(new DesignerActionPropertyItem("BackColor", "Back Color")); 
    actionItems.Add(new DesignerActionPropertyItem("ForeColor", "Fore Color")); 

    //adds the action items from base smart tag. 
    foreach (DesignerActionItem baseItem in base.GetSortedActionItems()) 
    { 
     actionItems.Add(baseItem); 
    } 
    return actionItems; 
} 

我在for循環中添加新操作項下的基本操作項,有沒有什麼辦法可以避免循環並儘量減少代碼?

+0

你試過'AddRange'而不是爲'Add' –

+0

使用actionItems.AddRange(base.GetSortedActionItems()) – GSP

+1

的AddRange不適用於DesignerActionItemCollection – Amal

回答

0

我找到了答案,插入是最好的選擇。

public override DesignerActionItemCollection GetSortedActionItems() 
{ 
    DesignerActionItemCollection actionItems = base.GetSortedActionItems(); 

    //inserts the new smart tag action items. 
    actionItems.Insert(0, new DesignerActionHeaderItem("MySmartTag Support")); 
    actionItems.Insert(1, new DesignerActionPropertyItem("BackColor", "Back Color")); 
    actionItems.Insert(2, new DesignerActionPropertyItem("ForeColor", "Fore Color")); 

    return actionItems; 
} 
相關問題