I have an ASP.NET MVC 5 app and I map properties between model and viewmodel and vice versa. I could use automapper to do this but since I don't need mapping rules to convince me to use it as I mostly do simple 1 to 1 mapping the  performance overhead that automapper will add is not worthwhile.If I have mapping differences I'll map it manually where I reference it in my controller.Here is my codepublic class Dog{    public int Id { get; set; }    public string Name { get; set; }    public DateTime? BirthDate { get; set; }    public int? CreatedBy{ get; set; }    public DateTime? DateCreated { get; set; }}public class DogViewModel{    public int Id { get; set; }    public string Name { get; set; }    public DateTime? BirthDate { get; set; }    public static implicit operator DogViewModel(Dog dm)    {        var vm= new DogViewModel{            Id = dm.Id,            Name = dm.Name,            BirthDate = dm.BirthDate        };        return vm;    }    public static implicit operator Dog(DogViewModel vm)    {        var dm = new Dog        {            Id = vm.Id,            Name = vm.Name,            BirthDate = vm.BirthDate         };        return dm;    }}This allows me to in my controller actionmethods easily map one class to another. e.g.  public async Task<IActionResult> Edit(int? id)    {        var dog= await _db.Dogs.FirstOrDefaultAsync(d => md.Id == id);        DogViewModel dogVm = dog;        ...     }    [HttpPost]    public async Task<IActionResult> Edit(DogViewModel dogVm)    {       Dog dog= dogVm;       ...    }In my index ActionMethod I need to map a list of items.  public async  Task<IActionResult> Index()    {        var dogs = await _db.Dogs.ToListAsync();        var dogVms = new List<DogViewModel>();        foreach (var dog in dogs)        {            DogViewModel dogVm = dog;            dogVms.Add(dogVm);        }        return View(dogVms);    }Question: Is there a way in LINQ or some other way in C# to eliminate the above foreach clause to simplify this code?
Simplify my class mapping common class properties between model and viewmodel classes
c#;linq
Providing var dogVms = new List<MonthViewModel>();is meant to actually be var dogVms = new List<DogViewModel>();Then to use LINQ you could doList<DogViewModel> dogVms = (from dog in dogs select (DogViewModel)dog).ToList();