【发布时间】:2020-12-14 07:57:24
【问题描述】:
我想排序一个List<Tuple<Vertex, Vertex>>,即一个元组列表,其中每个元组包含一定数量的顶点。Vertex是一个自定义类,List和Tuple来自@987654325 @。
我已经有几个Comparers 提供了一种比较两个顶点的方法,例如:class MyVertexComparer1 : Comparer<Vertex> 和class MyVertexComparer2 : Comparer<Vertex>
现在我想使用这些现有的Comparers 根据默认元组比较对列表进行排序,即比较第一个条目,并且仅在比较下一个条目的情况下比较。
此排序中两个元组的比较应由自定义 VertexComparers 之一确定。
我知道我可以编写一个在其实现中使用MyVertexComparer 的class MyTupleComparer : Comparer<Tuple<Vertex, Vertex>>,可能带有一个指定使用哪个VertexComparer 的通用参数。
但是,这感觉不对,因为我会简单地重复元组的默认比较。
此外,如果没有针对每个顶点数量的专用比较器类,我看不出如何将其扩展到具有两个以上顶点的元组。
【问题讨论】:
-
您能否澄清在排序过程中使用默认比较器和自定义比较器?根据我对您所要求的内容的理解,默认比较器似乎可以满足您的要求。如果您在列表中调用
Sort(),那么生成的订单有什么问题? -
@CoolBots 我已经更新了这个问题,我希望澄清自定义和默认比较器的用法。