using System.Collections.Generic;
public static void Main()
var items = new List<AppModuleInstance>() {
new AppModuleInstance{ Id = 1, Title = "Test 1", ModuleCd = "EXAM" },
new AppModuleInstance{ Id = 2, Title = "Test 2", ModuleCd = "EXAM" },
new AppModuleInstance{ Id = 3, Title = "Test 3", ModuleCd = "EXAM" }
var exams = items.Select(i => i.ConvertToChild()).Cast<Exam>();
public class AppModuleInstance
public int Id { get; set; }
public string Title { get; set; }
public string ModuleCd { get; set; }
public AppModuleInstance ConvertToChild()
return ConvertToChild(this);
public AppModuleInstance ConvertToChild(AppModuleInstance instance)
if (instance == null || string.IsNullOrWhiteSpace(instance.ModuleCd)) return instance;
if (instance.ModuleCd == "EXAM"){
x.Title = instance.Title;
x.ModuleCd = instance.ModuleCd;
throw new NotImplementedException();
public class Exam : AppModuleInstance
public int Duration { get; set; }