Дети собственность


            public List<Channel> Children
            {
                get {  return myChannels.Where(c => c.ParentChannelId == this.Id).ToList(); }
            }

является ли это правильным способом, чтобы получить детей ? он работает, вопрос, если это единственный способ.

могли бы дать мне пример для других методов достигая одно и то же? (если есть какие-то другие?)



183
1
c#
задан 28 октября 2011 в 08:10 Источник Поделиться
Комментарии
1 ответ

Как правило, вы должны вернуть товар как можно более абстрактной. Если вы только собираетесь перебрать элементы и не нужен список, вы должны использовать интерфейс IEnumerable как вернуть тип, даже если вы на самом деле возвращает список.

Вместо того чтобы вернуть его в виде списка, вы можете вернуть его как перечислитель:

public IEnumerable<Channel> Children {
get { return myChannels.Where(c => c.ParentChannelId == this.Id); }
}

Вместо того, чтобы создавать список, возвращает перечислитель, который может произвести детали. Преимущества заключается в том, что почти нет работы, когда вы позвоните в отель, и не выделить память для списка. Недостатки заключается в том, что есть некоторые накладные расходы для каждого элемента, который вы получите от перечислителя, как это имеет для перебора элементов в источник, пока он не находит тот, который соответствует условию, и у вас есть, чтобы повесить на первоисточник (myChannels) как долго, как вы используете перечислитель.

Одно большое преимущество этого подхода состоит в том, что она гибкая. Вы можете просто использовать .Вызова метода toList() на результат, и вы возвращаетесь в выделении список для деталей.

6
ответ дан 28 октября 2011 в 08:10 Источник Поделиться