IEnumerable<T>
представляет серию элементов, которые вы можете перебирать (например, с помощью foreach), тогда как IList<T>
- это коллекция, которую вы можете добавлять или удалять с.
Как правило, вы хотите иметь возможность изменять ордер, добавляя или удаляя в нем OrderLines, поэтому вы, вероятно, хотите, чтобы Order.Lines был IList<OrderLine>
.
.
Сказав это, вы должны принять некоторые решения по проектированию фреймворка. Например, можно ли добавить один и тот же экземпляр OrderLine в два разных заказа? Возможно нет. Таким образом, учитывая, что вы захотите проверить, следует ли добавлять OrderLine в заказ, вы действительно можете отобразить свойство Lines только как IEnumerable<OrderLine>
и предоставить методы Add (OrderLine) и Remove (OrderLine). который может обрабатывать эту проверку.