C# System.Array不包含添加的定义

C# System.Array不包含添加的定义,c#,arrays,compiler-errors,C#,Arrays,Compiler Errors,我正在创建一个21点游戏,到目前为止,我已经制作了一个纸牌类,甲板类和鞋子类。卡片类有效,甲板类有效,鞋子类有效,但我仍然在手工类上工作。我创建了一个方法,如果手上已经有MAX_卡,则会抛出一个异常,否则它会将卡添加到手上并增加_cardCount,但出于某种原因,在我的代码\u手上。Add(card)表示 System.Array不包含添加的定义 如有任何方向正确的帮助或指导,将不胜感激 这是我上手工课的资料 class Hand { const Int32 MAX_CARDS = 1

我正在创建一个21点游戏,到目前为止,我已经制作了一个纸牌类,甲板类和鞋子类。卡片类有效,甲板类有效,鞋子类有效,但我仍然在手工类上工作。我创建了一个方法,如果手上已经有MAX_卡,则会抛出一个异常,否则它会将卡添加到手上并增加_cardCount,但出于某种原因,在我的代码
\u手上。Add(card)
表示

System.Array不包含添加的定义

如有任何方向正确的帮助或指导,将不胜感激

这是我上手工课的资料

class Hand
{
    const Int32 MAX_CARDS = 12;

    private Card[] _hand = new Card[MAX_CARDS];
    private Int32 _cardCount = 0;

    public Int32 CardCount
    {
        get
        {
            return _cardCount;
        }
    }

    public void AddCard(Card card)
    {
        if (_cardCount >= MAX_CARDS)
        {
            throw new Exception("Cannot of more than 12 cards in a hand");
        }
        else
        {
            _hand.Add(card);
            _cardCount++;
        }
    }

    public Card GetCard(Int32 cardIndex)
    {
        if (cardIndex >= _cardCount)
        {
            throw new Exception("Invalid Entry");
        }
        else
        {
            return _hand[cardIndex];
        }
    }

    Int32[] cardValues = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10 };
    String[] cardSymbols = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" };

    private Int32 SymbolToValue(String symbol)
    {
        int index = Array.IndexOf(cardSymbols, symbol);
        if (index != -1)
        {
            return cardValues[index];
        }
        else
        {
            throw new Exception("Value Not In Table");
        }
    }

    public Int32 GetSum()
    {
        int value = 0;
        Boolean aceflag;
        for (int i = 0; i < _hand.Length; i++)
        {
            value += SymbolToValue(_hand[i].Value);
            if (String.Equals(_hand[i].Value, "A"))
            {
                aceflag = true;
            }
            else
            {
                aceflag = false;
            }
            if (aceflag == true && value <= 21)
            {
                value = value + 10;
            }
        }
        return value;
    }
}
class-Hand
{
const Int32最大卡数=12;
私人卡[]_手=新卡[最大卡];
私有Int32 _cardCount=0;
公共Int32卡计数
{
得到
{
返回卡计数;
}
}
公共作废卡片(卡片)
{
如果(_cardCount>=最大卡数)
{
抛出新异常(“一手牌不能超过12张”);
}
其他的
{
_添加(卡片);
_cardCount++;
}
}
公共卡GetCard(Int32 cardIndex)
{
如果(cardIndex>=\u cardCount)
{
抛出新异常(“无效条目”);
}
其他的
{
返回手[cardIndex];
}
}
Int32[]cardValues={1,2,3,4,5,6,7,8,9,10,10,10};
字符串[]cardSymbols={“A”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“J”、“Q”、“K”};
专用Int32 SymbolToValue(字符串符号)
{
int index=Array.IndexOf(cardSymbols,symbol);
如果(索引!=-1)
{
返回值[索引];
}
其他的
{
抛出新异常(“值不在表中”);
}
}
公共Int32 GetSum()
{
int值=0;
布尔标志;
对于(int i=0;i<_hand.Length;i++)
{
value+=SymbolToValue(_hand[i].value);
if(String.Equals(_hand[i].Value,“A”))
{
aceflag=true;
}
其他的
{
aceflag=假;
}
如果(aceflag==true&&value数组的大小在c#中是不可变的,那么我建议使用一个列表

private List<Card> _hand = new List<Card>(MAX_CARDS);
private List\u hand=新列表(最大卡数);

我认为你的代码有很多问题,但是如果你真的想按你现在的方式来做,请使用索引添加一个项目:

public void AddCard(Card card)
{
    if (_cardCount >= MAX_CARDS)
    {
        throw new Exception(string.Format("This hand already contains {0} cards, " +
            "which is the maximum.", MAX_CARDS));
    }
    else
    {
        _hand[_cardCound] = card;
        _cardCount++;
    }
}

在此处输入代码我们使用数组中已存在的元素创建一个新列表。我们使用列表构造函数并将数组传递给它。列表接收此参数并从中填充其值

注意:数组元素类型必须与列表元素类型匹配,否则编译将失败

将数组复制到列表的程序:C#

使用系统;
使用System.Collections.Generic;
班级计划
{
静态void Main()
{
int[]arr=new int[3];//包含3个元素的新数组
arr[0]=2;
arr[1]=3;
arr[2]=5;
列表=新列表(arr);//复制到列表
Console.WriteLine(list.Count);//列表中的3个元素
}
}
产出:3
数组对c中的代码不好#使用的是列表数组不是一个好选项。因此使用列表类型数据。您可以使用列表并存储此对象中的每种类型数据,并将其转换为任何类型,您还可以使用循环从列表中获取单个数据。它非常易于使用和实现,因此使用列表对于代码来说非常好和容易

首先,我们声明一个int值列表。我们创建一个未指定大小的新列表,并向其中添加四个素数。值按添加的顺序存储。还有其他创建列表的方法。这不是最简单的方法

using System.Collections.Generic;

class Program
{

  static void Main()

   {

     List<int> list = new List<int>();

     list.Add(2);

     list.Add(3);

     list.Add(5);

     list.Add(7);

   }

}
使用System.Collections.Generic;
班级计划
{
静态void Main()
{
列表=新列表();
增加(2);
增加(3);
增加(5);
增加(7);
}
}

由于某些原因…system.Array不包含添加的定义…我不确定如何修复此问题..使用允许您添加内容的集合。数组的大小是固定的,请使用
列表来代替。这是我在21点游戏的同一代码中看到的第三个问题。我只是想知道有多少问题需要解决在我们最终实现之前,您的游戏阵列肯定不是不可变的。阵列的大小是不可变的(实际上是固定的)。阵列本质上是可变的。
using System.Collections.Generic;

class Program
{

  static void Main()

   {

     List<int> list = new List<int>();

     list.Add(2);

     list.Add(3);

     list.Add(5);

     list.Add(7);

   }

}