繁体   English   中英

如何在字符串数组中找到特定字符串的位置?

[英]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,任何常规的数组搜寻方法都不能在多维数组上使用,因此您有两个选择:

  • 通过手动遍历x / y尺寸自己寻找
  • 线性化数组并手动处理维数 (这意味着要使用string[]并通过乘法计算偏移量)

如果您不太熟悉它,则第一种方法(循环遍历x / y)可能比第二种方法(后者涉及更改几乎每一行代码)要容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM