尝试填充列表w/Enum但获取'type'就像'变量'一样

use*_*626 0 c# enums types

我正在创建一副卡片,并在Enums中使用我的Suits和Values,但是我的语法在尝试填充我的List套牌时没有.另外,Ace可以具有1或11的值,是否有某种方法可以将其合并到我的Enum中,或者我是否需要在执行诸如为二十一点求手之类的事情时编写代码?

public class Deck
{
    private List<Card> cards;
    private Random random = new Random();
    public Deck()
    {
        cards = new List<Card>();
        for (int s = 0; s < 4; s++)
            //for (int v = 0; v < 14; v++)
            foreach(Enum v in Values)
                cards.Add(new Card((Suits)s, (Values)v));
    }
Run Code Online (Sandbox Code Playgroud)

这是我的诉讼和价值的枚举:

public enum Suits
{
    Spades,
    Clubs,
    Diamonds,
    Hearts
}

public enum Values
{
    Ace = 1,
    Two = 2,
    Three = 3,
    Four = 4,
    Five = 5,
    Six = 6,
    Seven = 7,
    Eight = 8,
    Nine = 9,
    Ten = 10,
    Jack = 10,
    Queen = 10,
    King = 10
}
Run Code Online (Sandbox Code Playgroud)

Sim*_*ead 6

你的问题是这一行:

foreach(Enum v in Values)
Run Code Online (Sandbox Code Playgroud)

你不能enum用这种方式列举.Valuesenum 类型声明的名称..不是一组值.

你可以这样做:

foreach (var v in Enum.GetValues(typeof(Values)))
Run Code Online (Sandbox Code Playgroud)