У меня List(Of List(Of MyObject))
. У меня есть метод, который возвращает List(Of MyObject)
. Я хочу добавить каждый возвращенный список в список списков. Это просто с LoL.Add(L)
. Однако я хочу иметь возможность ссылаться на каждый список по ключу.
Например:
Key: "A"
MyObject1
MyObject2
Key: "B"
MyObject3
MyObject4
MyObject5
Я прочитал более десятка вопросов, похожих на эту: сгруппируйте список списков, сгруппировать список объектов в список списков и группировка списка объектов в новый список списка объектов. Кажется, я не могу адаптировать код в ответах на мою проблему.
Похоже, что все вопросы, которые я прочитал, предполагают, что список списков хорош и не делается по частям. Все мои попытки заканчиваются ошибками и исключениями преобразования типов.
Я не уверен, следует ли мне использовать вместо этого объект 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
, IEnumberable
, IGrouping
, Dictionary
), но я не знаю, что использовать в этой ситуации. Сейчас мне кажется, что лучше всего добавить каждый список к списку списков или к одному гигантскому списку, затем делать GroupBy
. Однако это не кажется очень эффективным.
В конце концов, моя цель - перебрать каждую группу, а затем перебрать каждый список в этой группе.