2014-12-24 3 views
0

Мне нужно найти строку в двумерном массиве, и я не знаю, как это сделать. Код должен выглядеть следующим образом:Как найти определенную строку в двумерном массиве строк?

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

* символ всегда находится в другом месте, и я хотел бы знать, как я могу его найти. Благодаря

+0

вы делитесь код на случайном размещении «*» в двумерном массиве, правильно? И тогда вам нужно найти место, где это «», не так ли? – hmartinezd

+0

Если у вас есть код, почему вы не установили локальные переменные с'x.Next (0,10) 'и'y.Next (0,10)', то используйте эти переменные для обновления массива? – serdar

ответ

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

@hmartinezd На самом деле, я думаю, вам стоит взглянуть на: http://stackoverflow.com/questions/1659097/why-would-you-use-string-equals-over – itsme86

0

Как alterntive поисковый запрос с 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

Смежные вопросы