C# 中的排序列表替代方案
我有许多对象,全部来自同一类(ColorNum) 每个对象有 2 个成员变量(m_Color 和 m_Number)
示例:
ColorNum1(Red,25)
ColorNum2(Blue,5)
ColorNum3(Red,11)
ColorNum4(White,25)
这 4 个对象位于 ColorNumList
List<ColorNum> ColorNumList = new List<ColorNum>();
现在我想对列表进行排序,以便 mColor =“Red”的对象“位于顶部。 我不关心其余对象的顺序。
我的谓词方法应该是什么样子?
I have a number of objects, all from the same class(ColorNum) Each object has 2 member variabels (m_Color and m_Number)
Example:
ColorNum1(Red,25)
ColorNum2(Blue,5)
ColorNum3(Red,11)
ColorNum4(White,25)
The 4 objects are in the ColorNumList
List<ColorNum> ColorNumList = new List<ColorNum>();
Now I want to order the list so the objects with mColor = "Red" is in the top.
I dont care about the order of the remaining objects.
What should my predicate method look like?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用 linq:
或列表的排序方法:
Using linq:
Or the list's sort method:
请参阅 http://msdn.microsoft。 com/en-us/library/system.array.sort(VS.71).aspx
[C#] public static void Sort(Array, Array, int, int, IComparer);
您需要实现一个函数来比较两个对象并返回一个值,该值指示一个对象是否小于、等于或大于另一个对象。
http://msdn.microsoft .com/en-us/library/system.collections.icomparer.compare(VS.71).aspx
您需要编写一个实现 IComparer 接口的类。
我没有使用过 C#,但这里是 VB 等效项:
Class ColorCompare
实现 IComparer
See http://msdn.microsoft.com/en-us/library/system.array.sort(VS.71).aspx
[C#] public static void Sort(Array, Array, int, int, IComparer);
You need to implement a function that compares two objects and returns a value indicating whether one is less than, equal to or greater than the other.
http://msdn.microsoft.com/en-us/library/system.collections.icomparer.compare(VS.71).aspx
You need to write a class that implemenets the IComparer interface.
I haven't been using C#, but here is the VB equivalent:
Class ColorCompare
Implements IComparer