2017-12-18 144 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”,那么它会给我很多数值 –

相关问题