I would recommend that you prevent the possibility of changing ViewModel.lst, that is, the lst type should be IEnumerable instead of List / IList (of course, if your additional code does not require a list function).
Also, I suppose you are not modifying the lst link, so you can remove setter and initialize lst through the constructor.
public class ViewModel { public ViewModel(IEnumerable<Money> lst) { this._lst = lst; } private readonly IEnumerable<Money> _lst; IEnumerable<Money> Lst { get { return this._lst; } }
This approach ensures that consumers of your code will not modify your ViewModel.Lst by accident.
source share