У меня есть свойство в классе, которое представляет собой последовательность элементов, например:
private LinkedList valueHistory = new ();
public IEnumerable ValueHistory
{
get => valueHistory;
}
public T? CurrentValue
{
get => valueHistory.LastOrDefault();
set => valueHistory.AddLast(value);
}
Это работает, но я хочу сообщить потребителю, что история значений идет последовательно, чего (если я правильно понимаю), я не думаю, что IEnumerable делает?И я хочу иметь возможность изменить резервное поле с LinkedList на список, или массив, или что-нибудь еще, что будет иметь больше смысла позже.
Какой тип я объявляю ValueHistory, чтобы указать, что потребитель может полагаться на правильную последовательность значений?
Отредактируйте, чтобы добавить пример, потому что явно я упускаю что-то важное; если потребитель позвонит
HistoryList myObj = new();
myObj.CurrentValue = "A";
myObj.CurrentValue = "B";
myObj.CurrentValue = "C";
Если я использую IEnumerable в качестве типа интерфейса, как потребитель получит доступ ко второй записи в myObj.ValueHistory и гарантирует, что она будет «B»? Это так просто?
myObj.ValueHistory.ToArray()[1]
Подробнее здесь: https://stackoverflow.com/questions/790 ... enced-list