class MekaModel { public string Name { get; set; } public List<BukiModel> BukiList { get; set; } } class BukiModel { public string Name {get; set;} public List<OptionModel> OptionList { get; set; } } class OptionModel { public string Name {get; set;} } static void Main(string[] args) { MekaModel m = new MekaModel() { Name = "Robo", BukiList = new List<BukiModel>() { new BukiModel() { Name = "Sword", OptionList = new List<OptionModel>() { new OptionModel(){ Name = "op1"}, new OptionModel(){ Name = "op2"} } }, new BukiModel() { Name = "Gun", OptionList = new List<OptionModel>() { new OptionModel(){ Name = "op3"}, new OptionModel(){ Name = "op4"} } }, }, }; var m2 = new MekaModel() { Name = m.Name, BukiList = m.BukiList.Select(a => new BukiModel() { Name = a.Name, OptionList = a.OptionList.Select(b => new OptionModel() { Name = b.Name }).ToList(), }).ToList(), }; }