Получить конкретный столбец и строку из 2-х мерного массива C # - PullRequest
0 голосов
/ 11 мая 2018

как я мог получить конкретный столбец и строку моего 2-мерного массива. Это объявлено как это

string[,] table = new string[104, 6];

Я хочу получить столбец [2,0] (3-й столбец) и сравнить его с [2,1] (3-й столбец, 1-й ряд), но если в [2,1] нет значения, я сравните его с [3,0] (4-й столбец).

Я пытался сделать это так

string[,] table2 = new string[104, 6];
string newPreviousValue2 = "placeholder";
int xIndex2 = 0;
int yIndex2 = 0;

string thirdColumn = table2[3, 0];
string firstRowinThirdColumn = table2[4, 0];

foreach (string previousValue in newChars)
{
    if (table2.GetLength(0) < xIndex2)
            {
                break;
            }
            if (previousValue.Equals(newPreviousValue2) && yIndex2 < table2.GetLength(1) - 1) {

                table2[xIndex2, yIndex2] = previousValue;

                var col = 2;
                var row = 0;

                var origin = table2[col, row];
                var other = table2[col, row + 1] ?? table2[col + 1, row];
                if (origin != null && origin == other)
                {
                    Debug.Log("There's something in 3rd Column 2nd row ");
                }
                else
                {
                    Debug.Log("There's nothing in 3rd column 2nd Row so Move to 4th Column");
                }
            }
            newPreviousValue2 = previousValue;
}

Но я не мог получить это. Я пытаюсь добиться того, чтобы начать с 3-го столбца, но если в 3-м столбце нет 2-й строки, он сравнит первую строку 3-го столбца с первой строкой 4-го столбца и т. Д.

EDIT:

Теперь у меня есть эти данные: PP, B, P, P, B

Это будет так

enter image description here

код @Immersive при условии, это

var col = 2;
var row = 0;

var origin = table2[col, row];
var other = table2[col, row + 1] ?? table2[col + 1, row];
if (origin != null && origin == other)
{
     Debug.Log("There's something in 3rd Column 2nd row ");
}
else
{
      Debug.Log("There's nothing in 3rd column 2nd Row so Move to 4th Column");
}

Это всегда относится к else заявлению

1 Ответ

0 голосов
/ 11 мая 2018

Проверка границы запрета:

var column = 2;
var row = 0;

var origin = table2[column, row];
var other = table2[column, row + 1] ?? table2[column + 1, row];

if ( origin != null && origin == other )
{ }

?? называется оператором "объединения".Это сокращение для (A != null) ? A : B

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...