c#nested example

Example: nested value object c#

public class CityList : ValueObject<CityList>, IEnumerable<City>
{
    private List<City> _cities { get; }
 
    public CityList(IEnumerable<City> cities)
    {
        _cities = cities.ToList();
    }
 
    protected override bool EqualsCore(CityList other)
    {
        return _cities
            .OrderBy(x => x.Name)
            .SequenceEqual(other._cities.OrderBy(x => x.Name));
    }
 
    protected override int GetHashCodeCore()
    {
        return _cities.Count;
    }
 
    public IEnumerator<City> GetEnumerator()
    {
        return _cities.GetEnumerator();
    }
 
    IEnumeratorIEnumerable.GetEnumerator()
    {
        return GetEnumerator();
    }
}