Asp.net 适当的数据结构?

Asp.net 适当的数据结构?,asp.net,data-structures,enums,Asp.net,Data Structures,Enums,我有一个卡片类-每张卡片是四种颜色中的一种。每种颜色都有与之相关的有趣数据,比如十六进制和数字表示。我本来打算使用枚举,但我不知道如何包含这两个属性 我希望能够通过Colors.Red.Hex或Colors.Red.Id引用Colors.Red和Colors.Blue等颜色,以及每个颜色后面的数据。这里合适的数据结构是什么 所有这些东西都是内置的: // using System.Drawing; Color MyColor = Color.Red; int Value = MyColor.

我有一个卡片类-每张卡片是四种颜色中的一种。每种颜色都有与之相关的有趣数据,比如十六进制和数字表示。我本来打算使用枚举,但我不知道如何包含这两个属性


我希望能够通过Colors.Red.Hex或Colors.Red.Id引用Colors.Red和Colors.Blue等颜色,以及每个颜色后面的数据。这里合适的数据结构是什么

所有这些东西都是内置的:

// using System.Drawing;

Color MyColor = Color.Red;

int Value = MyColor.ToArgb();

byte R = MyColor.R;
byte G = MyColor.G;

有一个名为Color的类,其属性名为Hex和Id。然后有返回所需静态颜色的静态属性:(这是C#)


如果您不想创建自定义颜色,请将颜色构造函数设置为私有。

谢谢Steve。这是为了简单起见-我实际上不是在处理颜色。我处理的牌的状态从1到10,每个状态都有一些属性。@Robbouse状态属性是否已修复?或者它们可以变化吗?谢谢洛克斯托克。如何从这些get语句中定义十六进制和Id?假设我想为整个解决方案创建Red/1/DD0000,您会怎么做?这叫什么?我们是在类中实例化新对象吗?这里有什么特别的术语我可以阅读吗?请看我的最新答案。我不确定这种模式的名称,如果你有私人承包商,我想它叫做工厂模式
public class Color
{
    public string Hex { get; private set; }

    public int Id { get; private set; }

    public static Color Red
    {
        get
        {
            return new Color 
            {
                Hex = "DD0000",
                Id = 1
            };
        }
    }

    public static Color Blue
    {
        get
        {
            return new Color
            {
                Hex = "hex for blue",
                Id = 2
            };
        }
    }
}