我有一个List(Of List(Of MyObject))
。我有一个返回List(Of MyObject)
的方法。我想把每个返回的列表添加到列表的列表中。这在LoL.Add(L)
中很简单。但是,我希望能够通过一个键引用每个列表。
举例来说:
Key: "A"
MyObject1
MyObject2
Key: "B"
MyObject3
MyObject4
MyObject5
字符串
我已经读了十几个类似的问题:group a list of lists,group a list of objects into a list of lists和grouping a list of objects into a new list of list of objects。我似乎不能适应我的问题的答案中的代码。
我读过的所有问题似乎都假设列表的列表是好的,而不是零碎的,我所有的尝试都以类型转换错误和异常结束。
我不确定是否应该使用IGrouping
或Dictionary
对象,但我的尝试也失败了。
我试着对我的另一段代码进行逆向工程,它以类似的方式工作:
Dim assignmentListByDay = _routeAssignments.OrderBy(Function(a) a.AssignmentDate).
GroupBy(Function(a) a.AssignmentDate)
型
在这里,_routeAssignments
的类型是IEnumerable(Of MyObject)
。assignmentListByDay
变成了IEnumerable(Of IGrouping(Of Date, MyObject)
。在后面的代码中,我可以这样做:
For Each assignmentList In assignmentListByDay
Dim ucAssignment As New ucSingleDayAssignment With _
{.AssignmentDate = assignmentList.Key,
.Assignments = assignmentList.ToList}
'do stuff
Next
型
我试图做类似的事情,将列表列表转换为List(Of IGrouping(Of String, MyObject)
,但我不知道如何将返回的列表转换为IGrouping(Of String, MyObject)
,也不知道这是否是正确的方法。
请注意,我可以自由地更改返回的内容和各种类型(List
,IEnumerable
,IGrouping
,Dictionary
),但我不知道在这种情况下使用哪种类型。现在看来,我最好的选择是将每个列表添加到列表或一个巨大的列表中,* 然后 * 执行GroupBy
。尽管这似乎效率不高。
最后,我的目标是遍历每个组,然后遍历该组中的每个列表。
1条答案
按热度按时间yc0p9oo01#
如果你需要一个键,列表的列表不是正确的结构。一个选择是
Dictionary (Of String, List(Of MyObject))
。