问题标签 [icomparer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
458 浏览

c# - 快速 IComparer?

在我重新发明轮子之前,是否有一些框架方法可以IComparer<T>从 a创建一个Func<T,T,int>

编辑

IIRC(已经有一段时间了)Java 支持匿名接口实现。C# 中是否存在这样的构造,或者委托是否被视为完整的替代方案?

0 投票
2 回答
414 浏览

c# - 订单以数字为基础

我正在使用此代码来订购一个按数字降序的列表

但它根本不订购:S任何帮助请

0 投票
6 回答
64099 浏览

c# - IComparable 和 IComparer 之间的区别

IComparableIComparer接口有什么区别?是否有必要始终使用此接口与Array.Sort()方法

0 投票
1 回答
1121 浏览

c# - SortedSet 添加混淆

当我运行下面的代码时,仅添加了目录中 50 个文件中的 8 个。

这些文件被命名为 0001、0002、0003、0004 等。

添加的文件按以下顺序排列:7,0,1,2,3,4,5,6 当不再添加项目时。

查看我的 SortedSet 的最小值和最大值分别为 6 和 7。

我想我的问题是有更好的方法来做到这一点,或者有一种方法可以让下面的代码做我想做的事。更具体地说,我希望根据文件中的解析值在集合中对文件路径字符串进行排序。

0 投票
1 回答
113 浏览

c# - 如何以逻辑顺序表示不同类型的文档

我需要按逻辑顺序表示不同类型的文档。所以我有一个带有 ID 的对象列表。我需要制作一个比较器,通过“手动”规则对这些对象进行排序。Order by id 必须是 2,32,5,12,8,43... 等等。

我使用 LINQ

如何制作这样的比较器?

0 投票
3 回答
2152 浏览

c# - 对包含自定义结构的 ArrayList 进行排序

我写了一个结构

public struct SeasonEpisodeNr { public int seasonNr; public int episodeNr; }

在我的程序中,我会将这些结构添加到 ArrayList。我怎样才能对它们进行排序?我尝试了 IComparer,但不幸的是我无法理解它是如何工作的。

0 投票
2 回答
6279 浏览

.net - 如何使用 List.Sort 和 Comparision(of T) 对降序/升序进行排序?

我有一个MyObjectmyObjects as List(Of MyObject)和一个Comparison(Of MyObject)使用大量比较函数(ByA、ByB、ByC 等)的委托 à la:

现在我可以使用

我如何使用它来排序DescendingAscending

啦啦

PS。不要说我应该写两个不同的比较器......

编辑@Jon Skeet

0 投票
4 回答
1670 浏览

c# - 在列表中.Sort() 方法,是否曾经将项目与自身进行比较?

如果我将自定义 IComparer 传递给 List 的 Sort() 方法的实例,是否会使用相同的项目调用比较器的 Compare(x,y) 方法?

IE。有没有Compare(x,x)可能被调用。

编辑:对列表中的项目不同的情况更感兴趣

0 投票
1 回答
124 浏览

c# - 针对参数失败的自定义比较器

我正在尝试编写一个自定义比较器来根据相似性对搜索结果列表进行排序。我希望与输入的搜索词最相似的词首先出现在列表中,然后是以搜索词组开头的词组,然后是按字母顺序排列的所有其他值。

鉴于此测试代码:

我正在尝试使用这个比较器:

调用 list.Sort(new MatchComparer(searchTerm) 会导致列表顶部的“我的猫有跳蚤”。

我想我必须在这里做一些奇怪/奇怪的事情..这里有问题还是有更好的方法来解决我正在尝试做的事情?

谢谢!

0 投票
7 回答
251 浏览

c# - C# IComparer 在比较相同的字符串时返回意外结果

我有一种情况,我的所有列表成员都具有相同的 ID(ID 是字符串而不是整数)。作为业务规则的一部分,我需要按升序对列表进行排序。我的原始实现与下面非常相似。我希望在应用排序后得到不变的列表,因为所有列表成员都具有相同的 ID,但令我惊讶的是结果不同。

以下是我在排序之前的原始列表。

Id:D1.2 名称:Pachycephalosaurus
Id:D1.2 名称:Amargasaurus
Id:D1.2 名称:Mamenchisaurus
Id:D1.2 名称:恐爪龙
Id:D1.2 名称:腔骨龙
Id:D1.2 名称:偷蛋龙
Id: D1.2 名称:暴龙

使用备用比较器排序:

Id:D1.2 名称:Pachycephalosaurus
Id:D1.2 名称:偷蛋龙
Id:D1.2 名称:腔骨龙
Id:D1.2 名称:恐爪龙
Id:D1.2 名称:Mamenchisaurus
Id:D1.2 名称:Amargasaurus
Id: D1.2 名称:暴龙

代码