using System.Collections.Generic;
public static void Main()
var list1 = new List<string> { "Only", "three", "elements"};
var list2 = new List<string> {"Really", "short"};
var list3 = new List<string> {"This", "is", "the", "longest", "list"};
var list4 = new List<string> {"This", "is", "also", "5", "long"};
var combinedLists = new List<List<string>> {list1, list2, list3, list4};
var groupsOfListsWithMaxLength = combinedLists
.OrderByDescending(g => g.Key)
foreach (var strList in groupsOfListsWithMaxLength )
string output = String.Join(" ", strList);
Console.WriteLine(output);