Как получить последний объект в общем списке? - PullRequest
1 голос
/ 05 октября 2009

Я передаю заполненный список SelectList моему представлению, и я хочу установить выбранное значение по умолчанию для last записи в списке. Пока у меня есть:

IQueryable<BuildNumber> projBuildNos = tcRepository.GetProjectBuildNos();
BuildList = new SelectList(projBuildNos, "ID", "value", projBuildNos.Last().ID);

Я получаю исключение, в котором говорится, что "оператор запроса" Последний "не поддерживается, но я не могу найти последнюю запись в моем общем списке и не могу найти примеры.

Этот код взят из «модели представления формы», передающей списки выбора из моего хранилища обратно в представление, и я думаю, что я должен выполнить это здесь. Однако я новичок в дженериках / mvc / linq, поэтому рад за альтернативные предложения.

Заранее спасибо за любую помощь. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

Ответы [ 3 ]

5 голосов
/ 05 октября 2009

Вы уже собираетесь высылать все результаты вашего запроса в память? Если это так, я предлагаю вам выполнить запрос и получить результат в виде списка:

List<BuildNumber> projBuildNos = tcRepository.GetProjectBuildNos().ToList();
BuildList = new SelectList(projBuildNos, "ID", "value", projBuildNos.Last().ID);

В противном случае вы могли бы легко получить обходной путь, который выполняет запрос дважды - возможно, давая противоречивые результаты.

1 голос
/ 05 октября 2009

Я нашел это в MSDN:

Queryable.LastOrDefault - Возвращает последний элемент последовательности или значение по умолчанию, если последовательность не содержит элементов.

0 голосов
/ 05 октября 2009

Может быть, это?

projBuildNos.Reverse().First().ID
...