Предположим, у вас есть два в коллекции:
var collections = new[]
{
new[] { new[] { "A" }, new[] { "B", "C" } },
new[] { new[] { "D" }, new[] { "E", "F" } }
};
var result = from first in collections
from second in first.Select((x, i) => new {x, i})
from third in second.x
group third by second.i;
Результат - IEnumerable<IGrouping<int, string>>
, что означает, что каждый элемент представляет собой набор string
с ключом int
. Обратите внимание, что результат не может быть отсортирован, поэтому группа для 1 может быть на первом месте. Если вы не хотите этого, добавьте orderby
в конец запроса.