2012-12-03 69 views
0

我在这一个问题的麻烦。我试图比较颜色RGB列表 并按RGB排序。我曾想过将它添加到字典中,但是一旦添加到字典中,就不知道如何获取颜色的值。那么如何才能在列表中获得颜色的RBG,以便将它们相互比较。任何帮助或建议,我将不胜感激,谢谢。获取颜色值C#

+2

你试过Color.ToArgb()? MSDN:http://msdn.microsoft.com/en-us/library/system.drawing.color.toargb.aspx –

+0

是否也能解释一下什么是比较咋办呢?你想知道哪种颜色比另一种或更多的黑色更红吗?你从哪里获得颜色,以什么格式? –

回答

1

您可以轻松地使用的System.Drawing.Color结构这一点。 它提供了一个toArgb方法,你可以用它来获得一个颜色相当于整数值。

List<Color> lc = new List<Color>(); 
Color c = new Color(); 
c.R = 0xFF; 
c.G = 0x00; 
c.B = 0x00; 
lc.Add(c); 
... 
... 
lc.Sort((c1, c2) => c1.ToArgb().CompareTo(c2.ToArgb)); 
0

见这个例子

//if you want to compare each value 
Color _color = Colors.AliceBlue; 
byte R = _color.R; 
byte G = _color.G; 
byte B = _color.B; 

使用compareTo也为字节比较

+0

是的,CompareTo方法必须返回一个整数。 –

+0

这很简单..你可以很容易地比较这些字节并根据结果返回一个整数值 –