Filho de pai hierárquico recursivo

Eu tenho uma coleção de itens provenientes de um banco de dados que tem umparentid valor ou nulo.

Aqui está o meu design de aula:

public class Item
{
public int id{get;set;}
public string Name{get;set;}
public int? ParentId{get;set;}
public List<Item> SubItems{get;set;}
}

Eu quero construir uma estrutura hierárquica de itens da coleção. Suponha que uma coleção é de 100 itens a partir dos quais eu preciso construir a estrutura com base no mapeamento ParentId.

Eu tentei este postJunções hierárquicas recursivas em C # e LINQ mas me dá um erro se ParentId for nulo.

Também tentouConstruir lista de tipos de árvores verificando recursivamente a relação pai-filho C # , mas esta solução também não funciona para mim.

Como faço para conseguir isso?

questionAnswers(3)

yourAnswerToTheQuestion