2016-04-09 17 views
-2

linq c#を使用してキー値のペアで辞書をグループ化する。何も得られません。linq.1でどのように変換するのですか?文字列と文字列linqとC#を使用しています。私は何も取得していません。linqで行う方法。linq cを使用してキー値のペアで辞書をグループ化する#

{ 
    Namevalue" : 2, 

    "hotellist" : 
    [ 
     { 
      "id" : 1288, 
      "name" : "nwealth", 
      "street" : "500 Commonwealth Avenue", 
      "city" : "Boston", 
      "postal_code" : "02215", 

      "room_types" : 
       { 
        "Room 1" : 
         { 
          "url" : "google-", 
          "desc" : "dddfddd." 
         }, 
        "Room 2" : 
         { 
          "url" : "yahoo-", 
          "desc" : "dddfddd." 
         } 
       } 
     } 
    ] 
} 

LINQクエリ:

 var InventoryData = res.GroupBy(x => new 
      { 
       x.Id, 
       x.Name, 
       x.Address, 
       x.City    
      }, 
       (Key, group) => new 
      { 
       HotelId = Key.Id, 
       groups = group.ToList() 
      }).ToList().ForEach(r => 
       { 
        room = r.groups.ForEach(x => 
         (Key, group) => new Hotelroomtypes 
         { 
          roomname = Key.HotelRoomTypeDesc, 
          RoomType = group.ToList() 
         });      
       }); 

     } 

私はanything.Howは、LINQでやってもらうdid't。

+0

ここにあなたの最初の質問と思われます。質問をする方法については、ヘルプセンターをご覧ください。それはあなたを助けるでしょう。あなたの質問が良いほど、あなたが期待している答えが良くなる。クリアする最初のポイントは次のようになります:あなたがタイトルで言及した辞書はどこですか? 'res'は辞書ではないようです。第2のポイント:達成しようとしているソースデータと結果を表示します。 –

答えて

0

の構文は、public void ForEach(Action<T> action)MSDNです。したがって、変数InventoryDataに結果を格納することはできません。 ForEachメソッドのアクションメソッドでは、値をroom変数に設定しますが、この値はコレクションの各要素の最終値に書き換えられます。

あなたは何をしたいのですか分かりませんが、ForEachSelectに変更し、代わりに変数を返すことができます。

関連する問題