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分组通常通过LINQGroupBy
查询创建
您如何填充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分组
通常通过LINQGroupBy
查询创建
您如何填充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
当然,答案是更新的。谢谢