问题标签 [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 投票
4 回答
105706 浏览

c# - 使用 IComparer 进行排序

我正在尝试使用IComparer对点列表进行排序。这是 IComparer 类:

在客户端代码中,我正在尝试使用此类对点列表 p (类型List<Point>)进行排序:

代码出错了。显然,它期望IComparer<Point>作为排序方法的参数。
我需要做什么来解决这个问题?

0 投票
2 回答
343 浏览

c# - 是否有一种快速、简单且免费的方法来自动生成 IComparableC# 类的实现?

我知道 Resharper 可以编码生成一个比较器实现(并且做得非常好),但我正在寻找一种免费的方法来做同样的事情。我有一个客户不太可能为每个开发人员投资 250 美元,但开发人员仍然希望能够在几秒钟内创建比较器,而不是几分钟(或更多,取决于对象的复杂性)。

我会寻找 VSIX 扩展或各种加载项。

0 投票
2 回答
255 浏览

asp.net - 如何更改 ASP.NET 的 Request.Form 集合的比较器?

ASP.NET 的Request.Form["key"]集合使用不区分大小写的比较器。这把我搞砸了,因为我的表单 POST 数据看起来像:

结果,Request.Form["subject"](或Request.Form["Subject"]就此而言)返回两个值:

但我想要的是我的特定键的单个值,区分大小写。

如何将比较器更改为区分大小写?

0 投票
1 回答
240 浏览

c# - 自然排序问题

我一直在尝试使用从这里借来的代码来整理我的应用程序的自定义对象集合。通常排序工作正常,直到我遇到以下字符串

由于某些非常奇怪的原因,它按顺序返回集合

我期望看到的集合看起来像 Windows 资源管理器将显示的应该是

根据 Michael Kniskern 发布的C# 中的自然排序顺序的建议,我尝试实现使用 shlwapi.dll 的答案,这将返回我希望按照上面列出的最后一个集合看到的顺序。然而,这种方法仅适用于 Windows 7,并在 Windows XP 中返回不均匀的集合。

我怀疑列为 D-016.00、D-016.0 和 D-016.000 的文件在解析为 int 时会得到串联的 0 列表,这会导致此错误。但是我无法确切了解如何解决这个问题(对于这些比较器接口来说太新了)。任何人都可以为此提出解决方案吗?

下面是我目前正在使用的代码

0 投票
3 回答
13242 浏览

c# - 实现自定义 IComparer<>(示例)

我刚刚编写了以下代码,它将按其本机排序字符串,string.Compare()但允许一组异常(在本例customPriority中)将优先于默认string.Compare()函数。

这一切似乎有点啰嗦,我想知道 .NET 中是否有内置的东西允许这样做?

0 投票
4 回答
3670 浏览

c# - 结合多个 Linq OrderBy 实现 IComparer

我的问题是我总是想以某种方式订购一组对象。

例如:

...

我遇到的问题是它一直在冗长地附加排序顺序。一个巧妙的解决方案似乎只是创建一个实现的类IComparer<foo>,这意味着我可以这样做:

.

问题是,这个实现的order方法如下

...

这意味着它在非常精细的基础上进行比较。

当前的实现(可能会起作用,尽管我正在编写伪代码)

这不是很有效,另一个可以提供更整洁的解决方案吗?理想情况下完全没有 Compare(x,y) 方法?

0 投票
3 回答
384 浏览

c# - C# 排序/比较项目

我有一个想要排序的类(补丁),所以我实现了 IComparer。

但是,它需要根据用户的需要进行排序,例如: - key1, key2, key3 - key1, key3, key2

对于每个键比较,我编写了一个 IComparer 类,但是,我想知道如何实现它的连接。即排序时我只能传递一个 IComparer 实例。

或者我应该为每种完整排序创建一个 IComparer 类,即 IComparerKey1Key2Key3、IComparerKey1Key3Key2 等?

0 投票
2 回答
2304 浏览

c# - 使用 bool 对自定义列表进行排序

有一堂课

这是排序类

这就是我使用它的方式:

现在,我在成员旁边live还有其他成员intstring输入。对于这些类型,我有类似的排序类实现IComparer。他们没有问题。这个live成员的唯一问题。它根本没有排序。我希望它位于列表的顶部或底部,但它位于中间的某个位置。我错过了什么?

0 投票
2 回答
378 浏览

c# - 如何在 .NET 中使用 IComparer 更改排序顺序

我敢肯定这很简单,但它让我很难过。我想简化地对我的字母进行排序,但将 Ds 放在 As 和 Bs 之间。我想我想要一个自定义的 IComparer 来做到这一点。

我将如何完成这个 IComparer 实现以传递我的断言?IComparer 文档说,如果 x < y,则返回小于 0,但是小于零有关系?抓着我的头。

0 投票
3 回答
326 浏览

c# - 如何使用 IComparer按任意值排序?

我收到一个排序的整数列表,我想用它来对ListCollectionViewvia进行排序ListCollectionView.CustomSort。此属性接受一个IComparer并且我已经创建了一个,但正如预期的那样,我只能比较通用对象xy.