C#通过for循环插入数组值

JRo*_*Roy 2 c#

大家好

我想要做的是调用“FillDeck”方法来用 52 个数组元素填充“deck []”。for 循环用于添加元素 - 出于测试目的,它只是添加来自 for 循环的 y+x 值。我所做的是使用变量“placement”来指示我的索引位置,然后增加放置变量,因此对于每次循环迭代,索引都会增加,从而向该特定索引添加一个数组元素。但是,我得到了 IndexOutOfRangeException,这是我想弄清楚的。

注意:我不能自动为数组使用预先确定的值,我必须调用一个方法,该方法的目的是将值添加到数组中。由于它是具有嵌套 for 循环的卡片组来确定等级/花色,因此这是解决此问题的好方法。

谢谢=)

    static void Main(string[] args)
    {
        int [] deck = {};
        FillDeck(deck); // Error Here
    }
    public static void FillDeck(int[] deck)
    {
        int placement = 0;
        // 0 = Ace , 12 = King : 0 = Hearts, 1 = Diamonds, 2 = Clubs, 3 = Spades
        for (int x = 0; x < 13; x++)
            for (int y = 0; x < 4; ++y)
            {
                deck[placement] = x + y;// Error here
                ++placement;
            }

    }
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 5

int [] deck = {}
Run Code Online (Sandbox Code Playgroud)

这将创建一个 size 数组0
你不能在里面放任何东西。

您需要编写new int[52](或其他适当的数字)来创建一个可以实际容纳事物的数组。

或者,您可以创建一个List<T>,它可以通过调用Add()方法扩展到任何(合理的)大小。