Я хочу отсортировать List<Tuple<Vertex, Vertex>>
, то есть список кортежей, где каждый кортеж содержит определенное количество вершин.Vertex
— это пользовательский класс, List
и Tuple
— из System
.
У меня уже есть несколько Comparer
, которые позволяют сравнивать две вершины, например:class MyVertexComparer1 : Comparer<Vertex>
и class MyVertexComparer2 : Comparer<Vertex>
Теперь я хотел бы использовать эти существующие Comparer
для сортировки списка в соответствии со сравнением кортежей по умолчанию, т.е. сравнением первой записи и только в случае ничьей сравнения следующей записи.
Сравнение двух кортежей в рамках этой сортировки должно определяться одним из пользовательских VertexComparers.
Я знаю, что мог бы написать class MyTupleComparer : Comparer<Tuple<Vertex, Vertex>>
, который использует MyVertexComparer
в своей реализации, возможно, с общим параметром, указывающим, какой VertexComparer использовать. Однако это кажется неправильным, поскольку я просто повторил бы сравнение по умолчанию для кортежей.
Более того, я не понимаю, как это можно распространить на кортежи с более чем двумя вершинами без специального класса компаратора для каждого количества вершин.
Sort()
в своем списке, что не так с результирующим порядком? - person CoolBots   schedule 25.08.2020