1

入力されたSelectListをビューに渡しますが、選択した値をデフォルトでリストの最後のレコードに設定したいと思います。これまでのところ私は持っています:

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

「クエリ演算子「Last」はサポートされていませんが、ジェネリックリストの最後のレコードを取得できないようで、例が見つかりません。

このコードは、リポジトリからビューに選択リストを渡す「フォームビューモデル」からのものであり、ここでこれを実行する必要があると思います。ただし、generics / mvc / linqは初めてなので、別の提案に満足しています。

助けてくれてありがとう。さらに情報が必要な場合はお知らせください。

4

3 に答える 3

5

クエリのすべての結果をメモリに吸い込みますか?その場合は、クエリを実行して結果をリストに入れることをお勧めします。

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

そうしないと、クエリを2回実行する回避策が簡単に発生する可能性があり、結果に一貫性がなくなる可能性があります。

于 2009-10-05T16:33:06.880 に答える
1

私はMSDNでこれを見つけました:

Queryable.LastOrDefault-シーケンスの最後の要素を返します。シーケンスに要素が含まれていない場合はデフォルト値を返します。

于 2009-10-05T16:35:51.450 に答える
0

多分これ?

projBuildNos.Reverse().First().ID
于 2009-10-05T16:33:48.160 に答える