2017-12-18 93 views
0

是的,這是爲了學校工作,但問題是工作的一小部分,我覺得它幾乎可以忽略不計。如何找到字符串數組中特定字符串的位置?

總之,我使用了一個字符串數組打印格這樣

Random rnd = new Random(); 
for (row = 0; row <= 5; row++) 
{ 
    for (column = 0; column <= 5; column++) 
    { 
     RandomNumber = rnd.Next(1, 13); 
     if (RandomNumber == 3) 
      luckDipBoard[row, column] = "You Win "; 
     else 
      luckDipBoard[row, column] = "You Lose "; 
    } 
} 

//Display board 
for (row = 0; row <= 5; row++) 
{ 
    for (column = 0; column <= 5; column++) 
    { 
     Console.SetCursorPosition(column * 10, row * 2); 

     if (luckDipBoard[row, column] == "You Win ") 
      Console.ForegroundColor = ConsoleColor.Green; 
     else 
      Console.ForegroundColor = ConsoleColor.Red; 

     Console.Write(luckDipBoard[row, column]); 
    } 
} 

它輸出網格陣列和顏色相應的變量。不過,我希望能夠做的是用戶是能夠輸入的位置,這是我寫的:

Console.WriteLine("Input a row"); 
rowChoice = int.Parse(Console.ReadLine()); 
Console.WriteLine("Input a column"); 
columnChoice = int.Parse(Console.ReadLine()); 
Console.Clear(); 

但是,我不知道如何將這些變量納入在一個位置數組並用這些座標搜索數組並找出位置內部的內容。例如,如果隨機打印的網格和第2列第1行是「You Win」,並且用戶輸入了第2列第1行,則它會簡單地將變量添加到變量中。

如果有人可以指向我的右方向:

  • 使用兩個輸入值作爲位置
  • 搜索陣列和返回位置

    INT TextIndex內的值= Array.FindIndex(luckDipBoard,m => m ==「You Win」);

錯誤:嚴重性代碼描述項目文件行抑制狀態錯誤CS0411爲方法的類型參數「Array.FindIndex(T [],謂詞)」不能從使用推斷。嘗試明確指定類型參數。

+0

是的,只有返回我不明白的錯誤。 –

+0

哪些是錯誤?請在你的問題發佈。 – HimBromBeere

+0

如果輸入的是行號和列號,可以使用luckDipBoard [row,column]像在現有代碼中那樣訪問數組中的位置。 –

回答

3

之所以Array.FindIndex不起作用的是,它只能與載體(即string[])的作品 - 但你有一個二維數組(即string[,])。據我所知,沒有任何的規則排列的狩獵方法對多維數組工作,所以你有兩個選擇:

  • 做自己的狩獵通過循環在X/Y尺寸手動
  • 線性陣列,並且處理在 manully(這將意味着有string[],而是和計算通過乘法偏移)

如果你與它相當陌生,第一種方法(遍歷X/Y),可能比更容易第二(這將涉及改變一下每行代碼)。

+0

我將如何遍歷x/y維度? –

+0

@JoePodmore很像你已經在'//顯示板' –

+0

想到這樣,我該如何去使用用戶的輸入呢?我只想要選擇數組中的一個值,因爲我覺得如果我循環遍歷所有數值,那麼如果有多個「You Win」,那麼它會給我很多數值 –

相關問題