使用linq c#按键值对“分组”字典#

时间:2016-04-09 11:36:17

标签: c# linq dictionary group-by

使用linq c#按键值对“分组”字典。我没有得到任何东西。如何在linq.1中如何使用linq和c#转换字符串和字符串的键值对字典.I没有做任何事情。如何在linq。

{
  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()
                         });                     
                });

         }

我没有得到任何东西。如何在linq。

1 个答案:

答案 0 :(得分:0)

ForEach方法的语法为public void ForEach(Action<T> action) MSDN。因此,您无法将结果存储在变量InventoryData中。并且作为ForEach方法中的操作方法,您将值设置为room变量,但此值将重写为每个集合元素的最后一个值。

我不知道您想要做什么,但您可以将ForEach更改为Select方法,而不是设置room变量返回它。