Как соединить все вершины графа ребрами QuickGraph C#?

Мне нужно соединить все вершины графа друг с другом так, чтобы не было повторяющихся ребер. То есть ребра (0, 3, 6) -> (4, 7, 3) и (4, 7, 3) -> (0, 3, 6) одни и те же, только разные направления, поэтому нужно в ребра графа добавить только 1 из этих вариантов. Для этого сделал метод Connect, но он работает неправильно, так как повторяющиеся ребра все так же добавляются и я не могу понять почему. Может в QuickGraph уже есть метод, реализующий это?
EDIT:
vertex и subVertex - это Vector3 из Unity (обычные координаты трехмерного пространства (X, Y, Z)).

var graph = new AdjacencyGraph<Vector3, IEdge<Vector3>>(false);
for (var i = 0; i < nodesAmount; i++)
    graph.AddVertex(GenerateRandomVertex());
graph = Connect(graph);
private AdjacencyGraph<Vector3, IEdge<Vector3>> Connect(
        AdjacencyGraph<Vector3, IEdge<Vector3>> graph)
    {
        var vertices = graph.Vertices.ToList();
        foreach (var vertex in vertices)
        foreach (var subVertex in vertices)
        {
            var edge = new Edge<Vector3>(vertex, subVertex);
            var reversedEdge = new Edge<Vector3>(subVertex, vertex);
            var a = vertex == subVertex;
            var b = graph.Edges.ToList().Contains(edge);
            var c = graph.Edges.ToList().Contains(reversedEdge);
            if (!a && !b && !c) 
                graph.AddEdge(edge);
        }
        return graph;
    }

Ответы (1 шт):

Автор решения: MBo

Вместо форича сделайте старомодные циклы по индексу.

Первый цикл по i от 0 до N-2, а второй по j от i+1 до N-1

Тогда не придётся ничего проверять

→ Ссылка