Я бы порекомендовал вам предотвратить возможность изменения ViewModel.lst, то есть тип lst должен быть IEnumerable вместо List / IList (конечно, если ваш следующий код не требует функциональности List).
Кроме того,Я предполагаю, что вы не изменяете ссылку на lst, поэтому вы можете удалить setter и инициализировать lst через конструктор.
public class ViewModel
{
public ViewModel(IEnumerable<Money> lst)
{
this._lst = lst;
}
private readonly IEnumerable<Money> _lst;
IEnumerable<Money> Lst
{
get
{
return this._lst;
}
}
// other properties
}
public ActionResult GetMonies()
{
var model = new ViewModel(context.Money.Take(10).ToArray());
return View(model);
}
Этот подход гарантирует, что потребители вашего кода не будут изменять ваш ViewModel.Lst случайно.