如何将列表添加到另一个列表中?

3

好的,我有以下内容:

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中,因为我有一个条件,所以如果条件不为空,则添加到列表中...有什么建议吗?


公共列表<SubMenuModel> SubMenu { 获取; 设置; } 公共列表<MainMenuModel> MainMenu { 获取; 设置; } - uzhas
1
你可以使用.AddRange()将一个列表添加到另一个列表中,但前提是SubMenuModel和MainMenuModel具有相同的基类。 - Boot750
它们没有相同的基类。 - uzhas
@cansik 有什么简单的建议吗? :) - uzhas
@Boot750 我在主菜单中有这个:public List<SubMenuModel> SubMenu { get; set; } - uzhas
显示剩余4条评论
2个回答

4
你可以跟随这个链接
你只需要执行MainMenu.AddRange(SubMenu);
希望我能帮到你。
编辑:好的,我认为你可以这样做,你可以向现有的菜单项添加菜单项。
MenuItem addDevice = new MenuItem("Add Device");
addDevice.MenuItems.Add( new MenuItem("Add More .."));
It would be visible like:

子菜单

我在这里看到了这个解决方案,它对我有效。


我无法使用MainMenu.AddRange(SubMenu),因为SubMenu是SubMenuModel类型。 - uzhas

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 i have this in main menu public ListSubMenu { get; set; }",建议您这样做:

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

mainMenu.SubMenu = subMenuToAdd;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接