2015-04-27 48 views
0

我不確定我是否問這個正確的方法。如何應用類型類的索引?

我有這樣的:

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

你嘗試'ShuffledRow.Row [I] '? (ShuffledRow是你的自定義類 - 不是一個數組,你顯然想訪問的數組是該類內的成員變量Row) –

+0

@HW like this((Winner )== LotteryArray [J] [K])'?因爲這仍然給我括號的問題 – Muffinator

+0

如果你嘗試這個,究竟是什麼意思? –

回答

1

表達Winner<ShuffledRow[i]>沒有定義 - Winner是你的類ShuffledRow這是泛型類的實例!

既然你顯然想從您ShuffledRow類訪問Membervariable ,你需要編寫相應的語句,而不是試圖訪問類本身:

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