如何在字符串的二维数组中找到特定字符串
本文关键字:字符串 二维数组 | 更新日期: 2023-09-27 18:35:10
我需要在二维数组中找到一个字符串,但我不知道怎么做。代码应如下所示:
...
Random x = new.Random();
Random y = new.Random();
string[,] array = new string[10,10];
{
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
array[i, j] = "";
}
}
}
array[x.Next(0,10),y.Next(0,10)] = "*";
...
*
符号总是在不同的位置,我想知道如何找到它。谢谢
您可以通过遍历数组来找到它,就像初始化它一样,只是您不是为数组索引分配一个值,而是检查它的相等性:
int i = 0;
int j = 0;
bool found = false;
for (i = 0; i < 10 && !found; i++)
{
for (j = 0; j < 10; j++)
{
if (array[i, j] == "*")
{
found = true;
break;
}
}
}
if (found)
Console.WriteLine("The * is at array[{0},{1}].", i - 1, j);
else
Console.WriteLine("There is no *, you cheater.");
作为具有LINQ
的替代搜索查询:
Random xRnd = new Random(DateTime.Now.Millisecond);
Random yRnd = new Random(DateTime.Now.Millisecond);
string[,] array = new string[10, 10];
array[xRnd.Next(0, 10), yRnd.Next(0, 10)] = "*";
var result =
Enumerable.Range(0, array.GetUpperBound(0))
.Select(x => Enumerable.Range(0, array.GetUpperBound(1))
.Where(y => array[x, y] != null)
.Select(y => new { X = x, Y = y }))
.Where(i => i.Any())
.SelectMany(i => i)
.ToList();
result
是X,Y
形式的匹配列表