У меня есть массив, который помещает значения конкретных показателей, например, так:Рекурсивный Построить строку из массива
{4: 6, 8: 1}
Он может иногда иметь массивы внутри него. У меня есть функция, которая строит строку с нуля, из-за того, что преобразование массива в строку помещает все индексы без значений в эту строку, а иногда и индексы могут быть в миллионы.
Обратите внимание, что GetValue является отдельной функцией и возвращает объект, а DatabaseArray - это особый тип массива, используемый Player.IO. Я также укажу, что я не просто использую foreach, потому что мне нужно отобразить индекс.
value = "{";
DatabaseArray copiedarray = (DatabaseArray)result.GetValue(i);
for (int j = 0; j < copiedarray.Count; j++)
{
if (copiedarray.Contains(j))
{
if (value != "{")
{
value = value + ", ";
}
value = value + j + ": " + copiedarray.GetValue(j).ToString();
}
}
value = value + "}";
Это работает на верхнем уровне, но не с базовыми массивами. Получится это:
{0: <null>, 1: <null>, 2: <null>, 3: {0: <null>, 1: 2}, 4: 5}
В это:
{3: {0: <null>, 1: 2}, 4: 5}
Но я хочу сделать это так:
{3: {1: 2}, 4: 5}
Я не могу найти способ сделать его повторить через и постройте все базовые массивы. Я должен отметить, что существует неизвестное количество вложенных массивов и что я не могу просто преобразовать в строку и удалить нулевые строки, потому что получаю OutOfMemoryExceptions на действительно больших индексах.
Вы хотите сформировать строку json? –
Как вы это понимаете? Мне просто нужна строка, содержащая все индексы с ненулевыми значениями. – Cool12309
Массив представляет собой коллекцию объектов определенного типа типа с фиксированным размером. Я не вижу, как массив может содержать объекты типа T, а также «вложенный массив (предположительно типа T). Пожалуйста, объясни. –