问题标签 [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.
c# - C# SortedList,按键获取值
我按降序排列了 SortedList。
当在没有我自己的 IComparer 的情况下创建 SortedList 时,代码可以正常工作并且不会发生异常。
c# - C#中元素层次结构中的排序问题
我一直在 ASP.NET 中处理一个页面。此页面的行为与论坛完全一样。用户可以回复条目。回复表示为 ItemReply。当用户回复项目时,ParentID 设置为用户正在回复的 ItemReply 的 ID。
这段代码基本上是通过以下方式执行的:
顺序和层次结构似乎工作正常。但是,SetLevel 方法无法正常工作。SetLevel 的目的基本上是从 UI 角度确定回复的缩进程度。为了演示,想象有以下层次结构:
出于某种原因,我所有的 ItemReply 元素的级别都是 1。我做错了什么?
谢谢!
c# - 为什么 List.BinarySearch() 没有进行比较的重载除了 IComparer?
我想使用List.BinarySearch()
自定义项目类型。自定义类型不实现IComparable<T>
;相反,我有几个Comparison<T>
我调用的静态函数,因为在不同的点我想根据不同的标准对列表进行排序。另外,我认为它增加了清晰度,因为您的排序方式可以通过函数名称来描述。现在我想对列表进行二进制搜索。我想使用我的一个比较函数,却发现它List.BinarySearch()
没有接受的重载Comparison<T>
,只有IComparer<T>
. 我尽量避免IComparer<T>
,因为我觉得有一个单独的类只是为了比较对象很愚蠢。为什么没有除了 之外的List.BinarySearch()
重载?有什么方法可以使用我现有的功能吗?Comparison<T>
IComparer<T>
Comparison<T>
List.BinarySearch()
vb.net - 如何根据非唯一值对列表中的对象进行排序?
我正在尝试按存储的关键字对文章进行分类。我有一个类别的关键字列表,我希望为一篇文章分配一个关键字计数最多的类别。
这是为每个类别完成的,为每篇文章运行。我正在尝试对列表进行排序,以判断哪个类别最适合本文。然而,最好的类别可能不止一个,而且没有一个类别适合。所以运行这个对我没有帮助:
也许我做这一切都是错的,但到目前为止,我认为我走在正确的道路上。(我在 Category 类中也有一个默认比较,它也不起作用。)
我在最可能导致的排序上遇到异常,因为它们不是唯一的。
我得到的异常是 InvalidOperationException:无法比较数组中的两个元素。那是使用我在 ArticleClass 中构建的比较器
c# - C# 用数字对数组列表进行排序
您好,我确实想要一个数组,其中包含:
但如果我使用这个:
输出变为:
但我不会输出是:
在/使用 C# 中最简单的方法是什么?
当我这样做时,我无法让字母数字排序工作:
找不到类型或命名空间“AlphanumComparatorFast”您是否缺少 using 指令或程序集引用
是我得到的错误...
c# - 使用字符串实现自定义 IComparer
例如,我在 c# 中有一个字符串集合;
然后我对此进行排序,但我的 IComparer 方法不起作用,并且看起来无限循环。
基本上我需要"b"
先来,然后是"c"
,然后我不在乎其他任何人的顺序。
这可能使用 IComparer<string>
和Compare(string x, string y)
方法吗?
编辑:代码
.net - 无法创建比较器
我有一堂课
我有一个此类对象的列表:
我想按 SelectedDate 对这个集合进行排序。我尝试:
进而
但它只是混合元素,而不是排序。怎么了?
c# - 基于接口属性的 IComparer
我创建了一个类 Car,它派生自抽象类 TransportMeans并实现了一个接口 PrivateMeans,它只包含一个属性:
我想实现一个类,它根据属性容量对Car 类的对象进行排序。我想通过使用接口 IComparer来做到这一点。
但是,当我如下声明一个附加类 CarComparer时:
我收到错误:
错误 1“MeansOfTransport.CarComparer”未实现接口成员“System.Collections.Generic.IComparer.Compare(MeansOfTransport.Car, MeansOfTransport.Car)”。
问题是什么?
此外,我不允许在没有类型定义(汽车)的情况下使用IComparer 。为什么?
c# - 如何更改 MVC 项目中的默认 IComparer?
在 ASP.net MVC3 项目中,我有一个 IComparer 接口的自定义实现。我想在对字符串进行排序时默认使用我的comaprer。如何更改项目的默认 IComparer?
c# - 带有投影比较器的 LINQ OrderBy 匿名对象
我一直在尝试OrderBy
使用 LINQ 语句来处理匿名对象,但现在失败了。
我已经检查了这些:
匿名 IComparer 实现
C# linq sort - 实例化 IComparer 的快速方法
如何在 C# 中按特定字段对对象数组进行排序?
我花了几个小时尝试不同的方法,但一定有我遗漏的东西。
假设有以下课程:
并且products
是这些对象的列表。
如何完成此 LINQ 语句,以便它与匿名对象一起使用?
需要明确的是,我知道我可以以不同的方式做到这一点,但我非常有兴趣学习如何使这个特定的例子工作。
似乎应该可以实现ProjectionComparer
:
http ://code.google.com/p/edulinq/source/browse/src/Edulinq/ProjectionComparer.cs?r=0c583631b709679831c99df2646fc9adb781b2be
任何想法如何做到这一点?
更新:
我对此进行了快速性能测试 - 匿名比较器解决方案与标准 orderby.thenby 解决方案似乎匿名解决方案相当慢,这可能是我们可能已经预料到的。