Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用linq c按键值对“分组”字典_C#_Linq_Dictionary_Group By - Fatal编程技术网

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

C# 使用linq c按键值对“分组”字典,c#,linq,dictionary,group-by,C#,Linq,Dictionary,Group By,使用linq c按键值对“分组”字典。我没有得到任何结果。如何在linq中执行。1如何使用linq和c转换字符串和字符串的键值对字典。我没有得到任何结果。如何在linq中执行 { Namevalue" : 2, "hotellist" : [ { "id" : 1288, "name" : "nwealth", "street" : "500 Commonwealth Avenue"

使用linq c按键值对“分组”字典。我没有得到任何结果。如何在linq中执行。1如何使用linq和c转换字符串和字符串的键值对字典。我没有得到任何结果。如何在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中执行。

ForEach方法的语法是public void ForEachAction。所以不能将结果存储在变量InventoryData中。作为ForEach方法中的action方法,您将值设置到room变量中,但该值将被重写为集合中每个元素的最后一个值

{
  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."
                        }
                }
        }
    ]
}

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

似乎是您在这里的第一个问题。请花些时间阅读帮助中心关于如何提问的内容。它会帮助你的。你的问题越好,你期望得到的答案也就越好。首先要澄清的是:你在标题中提到的词典在哪里?res似乎不是一本字典。第二点:显示源数据和您试图实现的结果。