Как уже упоминалось, вы не можете сделать это специально, инициализатор не может ссылаться на нестатическое поле , метод или свойство 'field' , и анонимный метод - это не так.
Вы можете поместить его в конструктор, другие варианты будут сделать его Lazy<T>
public Lazy<List<Object>> Years { get; set; } = new Lazy<List<object>>(() =>
{
List<object> retList = new List<object>();
for (byte i = 0; i < 50; i++)
{
retList.Add(new { Value = i, Name = (2000 + i).ToString() });
}
return retList;
});
или взломать его немного с помощьюEnumerable.Range
private List<Object> Years { get; set; }
= Enumerable.Range(0, 50)
.Select(i => (object)new { Value = i, Name = (2000 + i).ToString() })
.ToList();
Примечание : в целом List<object>
кажется немного подозрительным
Или, может бытьчуть более кратким будет Value Tuple
private List<(int Value, string Name)> Years { get; set; }
= Enumerable.Range(0, 50)
.Select(i => (i, (2000 + i).ToString()))
.ToList();