2011-12-30 20 views
1

"カテゴリ"ドロップダウンリストにLINQを入力しています。 (ノースウィンドdatabse)LINQクエリは、選択後に余分な値を追加します

var Category = (from cat in _db.Categories.ToList() 
         select new SelectListItem 
         { 
          Text = cat.CategoryName, 
          Value = cat.CategoryID.ToString() 
         }).ToList(); 

私はので、私はドロップダウンのようなものであることを期待し、「すべて」のようなもの、フィルターリセットするために、このリストの先頭に付加価値を追加したい:

  • すべてが//クエリからクエリ
  • 調味料//から
  • 飲料を//追加
+0

あなたは '_dbをやっている理由に、特定の理由があります.Categories.ToList() '。 'ToList()'は必要ではないようです。 – Magnus

+0

あなたは本当に正しいです、私はそれを取り除くでしょう –

答えて

6
var Category = new[]{ new SelectListItem(){ Text = "All" } }.Concat(
        from cat in _db.Categories.ToList() 
        select new SelectListItem 
        { 
         Text = cat.CategoryName, 
         Value = cat.CategoryID.ToString() 
        }).ToList(); 
1

Insertの値をリスト内の任意の位置に設定できます。それはトリックを行う必要があります。

あなたはこのように、配列定数と Concatを使用することができます
4

var Category = new [] { new SelectListItem {Text="All"}} 
    .Concat(from cat in _db.Categories.ToList() 
     select new SelectListItem { 
      Text = cat.CategoryName 
     , Value = cat.CategoryID.ToString() 
     } 
    ).ToList(); 
1

List<T> Insertメソッドを持っています

Category.Insert(0, new SelectListItem { Text="All" }); 
関連する問題