如何在二维数组字符串中查找特定字符串?

时间:2014-12-24 16:10:10

标签: c# arrays

我需要在二维数组中找到一个字符串,我不知道如何。代码应如下所示:

...
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)] = "*";
...

*符号始终位于不同的位置,我想知道如何找到它。谢谢

2 个答案:

答案 0 :(得分:1)

你可以通过迭代遍历数组来找到它,就像你初始化它一样,除了不是为数组索引分配值,你要检查它是否相等:

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.");

答案 1 :(得分:0)

作为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();

resultX,Y

形式的匹配列表