我的想法是有一个排序机制,按照红色值排序(后面我还想扩展到可以按绿色和蓝色值进行排序)。但我在实现这个排序机制时遇到了麻烦。
我有一个名为“Colorbox”的类,它基本上是一个“List<Color>”,但这样我可以将“List<Color>”放在“List<Colorbox>”中。
我的主要目标是能够按照1种颜色(红、蓝、绿)的值对此“Colorbox”进行排序。(例如,使列表中最左边的值具有最少的红色)。
我尝试实现一个“toCompare”覆盖(不知道在C#中是否有效,但我知道在Java中,当您调用“sort()”方法时,也会调用比较函数“compare”)。
这给了我以下代码:
我有一个名为“Colorbox”的类,它基本上是一个“List<Color>”,但这样我可以将“List<Color>”放在“List<Colorbox>”中。
我的主要目标是能够按照1种颜色(红、蓝、绿)的值对此“Colorbox”进行排序。(例如,使列表中最左边的值具有最少的红色)。
我尝试实现一个“toCompare”覆盖(不知道在C#中是否有效,但我知道在Java中,当您调用“sort()”方法时,也会调用比较函数“compare”)。
这给了我以下代码:
public int CompareTo(object obj) {
Color toCompare = (Color) obj;
if (this.CompareTo(toCompare) == 1)
{
return 1;
}
else
{
return 0;
}
}
但是我不知道如何在那里实现按颜色排序或一般的排序。我需要编写额外的sort()
代码以覆盖原来的代码吗?
我其实不知道这个排序代码应该做什么。它是否按值顺序排列,直到可以遍历列表且没有任何更改为止?或者这种方法对于这个想法来说太冗长了?
下面是类的通用代码:
internal class Colorbox
{
private List<Color> box = new List<Color>();
int colorPicker = 0;
public Colorbox(List<Color> colorList)
{
this.box = colorList;
}
}
我希望有人可以帮助解释,我该做什么或者我应该从哪个方向去解决这个问题。
非常感谢,如果我表达不清楚,请随时询问。
LinqPad
特定的命令,它可以为您提供图像中漂亮的输出。 - SWeko