如何将列表添加到列表中?

时间:2015-07-16 08:48:22

标签: c#

好的,我有这个:

if(something!=null)
{
  SubMenu.Add(new SubMenuModel("PERSONAL_INFORMATION","account.personalinformation","/account/personalinformation"));
}
  if(something123!=null)
{        
   SubMenu.Add(new SubMenuModel("NOTIFICATIONS", "account.notificationsettings", "/account/notifications"));
}
      SubMenu.Add(new SubMenuModel("CHANGE_PASSWORD", "account.changepassword", "/account/passwordchange"));
      SubMenu.Add(new SubMenuModel("GAME_SETTINGS", "default", "default"));

    MainMenu.Add(new MainMenuModel("SETTINGS", "default", "default", true,




           }));

编辑:

public List<SubMenuModel> SubMenu { get; set; } 
public List<MainMenuModel> MainMenu { get; set; }

如何将此SubMenu添加到Main menu中,因为我有条件所以如果条件是!= null添加到列表...任何sugesstion?

2 个答案:

答案 0 :(得分:4)

您可以关注此link

你只需做MainMenu.AddRange(SubMenu);

希望我帮助你

编辑:好的,你可以这样做我认为你可以将MenuItems添加到现有的MenuItem,如:

MenuItem addDevice = new MenuItem("Add Device");
addDevice.MenuItems.Add( new MenuItem("Add More .."));
It would be visible like:

submenu

我看到这个解决方案here,它对我有用。

答案 1 :(得分:0)

如果您的MainMenu和SubMenu共享相同的属性或方法,我建议您使用界面。

    public interface IMenu
    {
        int a { get; set; }
        string b {get; set; }
    }

    public class SubMenu : IMenu
    {
        public int a { get; set; }

        public string b { get; set; }

        public double c { get; set; }
    }

    public class MainMenu : IMenu
    {
        public int a { get; set; }

        public string b { get; set; }

        public string d { get; set; }
    }

所以你可以像这样使用addrange

        List<IMenu> menuList = new List<IMenu>();
        List<MainMenu> mainMenuList = new List<MainMenu>();
        List<SubMenu> subMenuList = new List<SubMenu>();

        menuList .AddRange(mainMenuList);
        menuList .AddRange(subMenuList);

编辑::

通过这句话推荐“@ Boot750我在主菜单中有这个公共ListSubMenu {get; set;}”

所以就这样做吧

var mainMenu = new List<MainMenu>();
var subMenuToAdd = new List<SubMenu>().Add(new SubMenu() { .. });

mainMenu.SubMenu = subMenuToAdd;