If I have a list containing an arbitrary number of lists, like so:
var myList = new List>() { new List() { \"a\",
You can condense for loops using Range:
for
var result = Enumerable.Range(0, myList.Min(l => l.Count)) .Select(i => myList.Select(l => l[i]).ToList()).ToList();