C # - elegancki sposób partycjonowania listy?

Chciałbym podzielić listę na listę list, określając liczbę elementów w każdej partycji.

Załóżmy na przykład, że mam listę {1, 2, ... 11} i chciałbym podzielić ją na partycje, tak aby każdy zestaw zawierał 4 elementy, przy czym ostatni zestaw wypełniał jak najwięcej elementów. Wynikowa partycja wyglądałaby jak {{1..4}, {5..8}, {9..11}}

Jaki byłby elegancki sposób pisania tego?

questionAnswers(11)

yourAnswerToTheQuestion