Задать вопрос

Как посчитать до какого значения заполнен массив по каждому из измерений?

Здравствуйте.

Есть некоторый двухмерный массив, к примеру:
string[,] dataArray = new string[10, 10];
И этот массив заполнен некоторыми строковыми значениями, но не полностью, а только до некоторых значений. К примеру по измерению (dimension) - 0 до 4-х, а по измерению (dimension) - 1 до 5-ти.

Как посчитать до какого значения заполнен массив по каждому из измерений?

P.S. Знаком с методом:
.GetUpperBound(0)
.GetUpperBound(1)

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

P.P.S. Запись в массив происходила последовательно и с самого начала массива
  • Вопрос задан
  • 213 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 3
@carbon88
.NET developer/ORM developer
Пробежаться по массиву и проверить что там заполнено. Тут есть два варианта, бежать сначала и искать первый незаполненный или бежать с конца и искать первый заполненный. выбирайте стратегию сами.
Тут еще вопрос каким образом идет запись - рандомно, в любую клетку так сказать, или последовательно.
Если рандомно, то скорее всего нужно брать вариант просмотра с конца. Если последовательно, то тут вообще можно без обхода обойтись, запоминая максимальный индекс(ы) по которому(ым) произвелась запись.
Ответ написан
Комментировать
Nipheris
@Nipheris Куратор тега C#
И этот массив заполнен некоторыми строковыми значениями, но не полностью, а только до некоторых значений.

Это предположение неверно. Массив не бывает заполнен частично, до некоторых значений. В массиве всегда есть все значения, просто при создании массива они устанавливаются в дефолтовые.
Вам нужно хранить ваши значения в структуре переменного размера, например в списке (List).
Либо, раз уж у вас значения строкового типа, вы можете воспользоваться тем фактом, что строка - это ссылочный тип, и поэтому может иметь значения null. Вы можете идти по элементам массива до первого встретившегося null и считать его первым "незаполенным" элементом, если это подходит для вашей задачи (правда, тогда это придется делать каждый раз заново).
Ответ написан
Комментировать
@e_danilchenko
А просто пробежаться по измерениям и запоминать индексы не-null елеменнтов?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы