Mejor algoritmo para eliminar valores duplicados de una lista

¿Cuál es el mejor algoritmo para eliminar valores duplicados de una lista? He intentado esto:

for (int i = 0; i < AuthorCounter-1; i++)
{
    for (int j = 0; j < AuthorCounter-1; j++)
    {
        if (i != j)
        {
            if (AuthorGroupNode.Nodes[i].Text == AuthorGroupNode.Nodes[j].Text)
            {
                AuthorGroupNode.Nodes[j].Remove();
                AuthorCounter--;
            }

        }
    }
}

Aquí,AuthorGroupNodes Es una lista de nodos. Hizo las cosas bien hasta cierto punto, pero no perfecto. ¿Alguien tiene mejor solución?

Respuestas a la pregunta(4)

Su respuesta a la pregunta