[英]How do I find the location of a particular string in a string array?
是的,这是学校作业,但是问题只是工作的一小部分,我觉得这几乎可以忽略不计。
简而言之,我已经使用字符串数组来打印这样的网格
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 ==“您赢了”);
错误:严重性代码说明项目文件行抑制状态错误CS0411无法从用法中推断出方法'Array.FindIndex(T [],Predicate)'的类型参数。 尝试显式指定类型参数。
Array.FindIndex
不起作用的原因是它仅适用于向量 (即string[]
)-但您具有2D数组(即string[,]
)。 AFAIK,任何常规的数组搜寻方法都不能在多维数组上使用,因此您有两个选择:
string[]
并通过乘法计算偏移量) 如果您不太熟悉它,则第一种方法(循环遍历x / y)可能比第二种方法(后者涉及更改几乎每一行代码)要容易。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.