Эта структура делает только сравнения с другими цветовыми структурами. к сравнить цвета, основанные исключительно на их ARGB, вы должны использовать ToArgb метод. Это объясняется тем, что равные и Члены op_Equality определяют эквивалентности, используя не только Значение ARGB цветов. Например, Черный и FromArgb (0,0,0) не являются считается равным, поскольку черный является названный цвет и FromArgb (0,0,0) является нет.
Ответ 2
Чтобы добавить к Nick (правильный) ответ: если вы действительно этого хотели, вы могли бы написать свою собственную реализацию IEqualityComparer<Color> и использовать ее, например, в любых алгоритмах, которые вы можете писать, которые имеют дело с цветами, где вам нужна гибкость, когда это приходит к определению цвета.
Вы знаете, что-то вроде:
public class ColorComparer : IEqualityComparer<Color>
{
public bool Equals(Color x, Color y)
{
return x.ToArgb() == y.ToArgb();
}
public int GetHashCode(Color color)
{
return color.ToArgb();
}
}