Renderizando uma hierarquia usando o LINQ?

Digamos que temos uma aula

Category
{
   ID,
   Name,
   ParentID
}

e uma lista

1, 'Item 1', 0
2, 'Item 2', 0
3, 'Item 3', 0
4, 'Item 1.1', 1
5, 'Item 3.1', 3
6, 'Item 1.1.1', 4
7, 'Item 2.1', 2

Podemos usar o LINQ para renderizar uma árvore como:

Item 1
 Item 1.1
  Item 1.1.1
Item 2
 Item 2.1
Item 3
 Item 3.1

Qualquer ajuda é apreciada!

questionAnswers(6)

yourAnswerToTheQuestion