Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.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# 将列表列表强制转换为iGroup?_C#_Linq_Generics_Linq To Objects - Fatal编程技术网

C# 将列表列表强制转换为iGroup?

C# 将列表列表强制转换为iGroup?,c#,linq,generics,linq-to-objects,C#,Linq,Generics,Linq To Objects,我有一些创建列表的代码。该列表属于以下类型: List<List<Device>> GroupedDeviceList = new List<List<Device>>(); List GroupedDeviceList=new List(); 但需要以以下类型返回结果: IEnumerable<IGrouping<object, Device>> IEnumerable 这是通过强制转换等实现的,还是应该对列表

我有一些创建列表的代码。该列表属于以下类型:

 List<List<Device>> GroupedDeviceList = new List<List<Device>>();
List GroupedDeviceList=new List();
但需要以以下类型返回结果:

 IEnumerable<IGrouping<object, Device>>
IEnumerable
这是通过强制转换等实现的,还是应该对列表列表使用不同的定义?

I分组通常通过LINQ
GroupBy
查询创建

您如何填充
GroupedDeviceList
?您是手动执行此操作,还是根据
.GroupBy
的结果进行转换

您可以通过执行以下操作再次执行分组:

// IEnumerable<IGrouping<TWhatever, Device>>
var reGroupedList = 
    GroupedDeviceList
    .SelectMany( innerList => innerList.GroupBy( device => device.Whatever ) );
//IEnumerable
变量重新组合列表=
集团设备制造商
.SelectMany(innerList=>innerList.GroupBy(device=>device.Whatever));
i分组
通常通过LINQ
GroupBy
查询创建

您如何填充
GroupedDeviceList
?您是手动执行此操作,还是根据
.GroupBy
的结果进行转换

您可以通过执行以下操作再次执行分组:

// IEnumerable<IGrouping<TWhatever, Device>>
var reGroupedList = 
    GroupedDeviceList
    .SelectMany( innerList => innerList.GroupBy( device => device.Whatever ) );
//IEnumerable
变量重新组合列表=
集团设备制造商
.SelectMany(innerList=>innerList.GroupBy(device=>device.Whatever));

如果我正确理解了您的意图,答案如下:

    var result = GroupedDeviceList
        .SelectMany(lst => lst.GroupBy(device => (object)lst));

结果的类型为
IEnumerable
,其中object是对您的
列表的引用

,如果我正确理解了您的意图,答案如下:

    var result = GroupedDeviceList
        .SelectMany(lst => lst.GroupBy(device => (object)lst));

结果的类型为
IEnumerable
,其中object是对
列表的引用,假定每个非空列表的内容应组成一个组

IEnumerable<IGrouping<object, Device>> query =
  from list in lists
  from device in list
  group device by (object)list;
IEnumerable查询=
从列表中的列表
从列表中的设备
按(对象)列表对设备进行分组;

假定每个非空列表的内容应组成一个组

IEnumerable<IGrouping<object, Device>> query =
  from list in lists
  from device in list
  group device by (object)list;
IEnumerable查询=
从列表中的列表
从列表中的设备
按(对象)列表对设备进行分组;

您分组的关键点是什么?设备的属性?分组的关键是什么?设备的属性?返回一个
IEnumerable
@Thomas应该使用
SelectMany
当然,答案是更新的。谢谢。这将返回一个
IEnumerable
@Thomas应该使用
SelectMany
当然,答案是更新的。谢谢