如何应用类型的索引?

时间:2015-04-27 13:34:05

标签: c#

我不确定我是否正确地问这个问题。

我有这个:

if (Winner[i] == LotteryArray[j][k])
                    {
                        Prediction++;
                    }

它在一系列循环中,基本上检查“获胜”行中有多少数字与LotteryArray矩阵的每一行对应。但Winner由此构成:

static ShuffledRow WinningNums()
    {
        Console.WriteLine("Your winning numbers are!");
        Console.WriteLine("------------------------");
        ShuffledRow WinRow = new ShuffledRow(1, 46);
        for (int i = 0; i < 6; i++)  //this loop is to print the winning numbers
        {

            Console.Write("{0,3},", WinRow.Row[i]);

        }
        Console.WriteLine();
        Console.WriteLine("------------------------"); //these two lines are for aesthetics 
        return WinRow;

由此产生:

public class ShuffledRow
{
    public static readonly Random Random = new Random();
    public readonly int[] Row;

    // Generates and shuffles some numbers
    // from min to max-1
    public ShuffledRow(int min, int max)
    {
        int count = max - min;
        Row = Enumerable.Range(min, count).ToArray();
        Shuffle(Row);
    }

    private static void Shuffle<T>(T[] array)
    {
        // shuffle
        for (int i = array.Length - 1; i > 0; i--)
        {
            int j = Random.Next(i + 1);
            T temp = array[i];
            array[i] = array[j];
            array[j] = temp;
        }
    }
}

现在它告诉我我不能将带有[]的索引应用于ShuffledRow类型的表达式

我也试过这个:

if ((Winner<ShuffledRow[i]>) == LotteryArray[j][k])
                    {
                        Prediction++;
                    }

但由于某种原因,它给了我括号的问题。

这篇文章可能过长,但我不知道如果没有包含所有这些内容会有多么混乱。

那么我该如何解决这个问题呢?

修改:if (Winner.Row[i] == LotteryArray[j][k]) { Prediction++; }

这是它应该如何。谢谢H W

1 个答案:

答案 0 :(得分:1)

表达式Winner<ShuffledRow[i]>未定义 - Winner是您的类ShuffledRow的一个实例,不是一个通用类!

由于您显然希望从Row类访问Membervariable ShuffledRow,因此您需要相应地编写语句,而不是尝试访问类本身:

ShuffledRow Winner = WinningNums();
if ((Winner.Row[i]) == LotteryArray[j][k])
                {
                    Prediction++;
                }