Проблема с зубчатыми длинами массивов - PullRequest
0 голосов
/ 09 февраля 2020

Итак, я работаю над проектом в Unity в C#, и мне нужно получить информацию из CSV-файла. Я создал тестовый файл для разработки кода, но у меня есть небольшая проблема.

Тестовый CSV-файл содержит (3 строки, в каждой по 5 столбцов):

5,9,12,53,67
8,24,33,49,71
10,16,28,64,88

Я используя код ниже, чтобы прочитать в зубчатый массив. Когда я печатаю в консоль (с функцией debug.log) длины каждой строки, я получаю правильный ответ. Но если я использую a для l oop, он получит только длину первого ряда, но не двух других. Как это возможно? Насколько я знаю, для l oop должно работать с ним отлично. Без ошибок.

Есть идеи?

Спасибо за помощь!

Код:

StreamReader test = new StreamReader("D:/Unity/Projects/.../Assets/Resurces/test.csv");
var testLines = new List<string[]>();
int row = 0;

while (!test.EndOfStream)
{
    string[] Line = test.ReadLine().Split(',');
    testLines.Add(Line);
    row++;
}

var data = testLines.ToArray();

Debug.Log(data.Length);
Debug.Log(data[0].Length);
Debug.Log(data[1].Length);
Debug.Log(data[2].Length);

for (int i=0; i<data.Length; i++)
{
    Debug.Log("i: " + i);
    Debug.Log(data[i].Length);
}

Что я получаю на консоли:

3
5
5
5
i: 0
5
i: 1
i: 2

Ответы [ 3 ]

0 голосов
/ 09 февраля 2020

Я отладил ваш фрагмент кода в примере проекта Unity и вижу желаемые результаты. Пожалуйста, подтвердите еще раз. Альтернативой было бы попробовать foreach.

enter image description here

0 голосов
/ 10 февраля 2020

Так что, очевидно, в консоли есть кнопка в единстве, называемая Свернуть. Если он включен, единство будет скрывать сообщения, если они одинаковы. Никогда не использовал его, я не помню, чтобы включить его, но похоже, что он сделал то, что предполагалось сделать. Спасибо всем за помощь, особенно @Adam, который указал мне на эту кнопку!

0 голосов
/ 09 февраля 2020

У меня было открыто Unity, и ваш код выглядел так, как будто он должен работать, поэтому я проверил его в функции Start в другом пустом моноблоке и получил ожидаемый результат.

EDIT: Скорее всего, у вас "Collapse" включена в вашей консоли, это функция, а не ошибка, вы можете включить ее, чтобы предотвратить спам в консоли при каждом обновлении, скрывать последующие циклы, потому что код и результат идентичны первому l oop.

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