C# Попытка заполнить двумерный массив объектов объектами - PullRequest
0 голосов
/ 06 августа 2020

Я создаю (пытаюсь хотя бы) приложение MySQL в C#

        int i = 0;
        Object[,] oResult = new Object[i,Reader.FieldCount];
        while (Reader.Read())
        {
            Reader.GetValues(oResult[i,]);
            i++;
        } 

, эта часть должна заполнить двумерный массив Object возвращенным Object [] из GetValues ​​( ), однако я не могу правильно определить синтаксис. i - количество строк, поэтому для каждой строки, которую читает мой читатель, массив становится больше (по крайней мере, я на это надеюсь), но я не могу указать, как заполнить вторую итерацию. теоретически его не должно быть, так как я хочу, чтобы метод заполнил всю эту строку. в массиве 1-dim это работает нормально.

прямо сейчас, я бы сказал, что лучше всего переключиться на список вместо 2-мерного массива и назовем его днем. даже если я думаю, что может быть maaaaaaaaaaaaaaaaaaaaaybe мне может потребоваться иметь двумерный массив

РЕДАКТИРОВАТЬ: GetValues ​​НЕ ВОЗВРАЩАЕТ объект [], скорее заполняет данный Object [] значениями

TL; DR как заполнить массив 2dim массивом (ar [1, "эта часть отверстия должна быть заполнена *])

1 Ответ

0 голосов
/ 06 августа 2020

Довольно проблематично изменить размер массива, а вы не знаете apriori Length. Поэтому давайте сохраним прочитанные записи в List<T>:

    List<object[]> data = new List<object[]>();

    while (Reader.Read()) {
      object[] record = new object[Reader.FieldCount];  

      Reader.GetValues(record);
       
      data.Add(record); 
    }       

Затем превратим список в 2-мерный массив:

    Object[,] oResult = new object[data.Count, Reader.FieldCount];

    for (int r = 0; r < data.Count; ++r)
      for (int c = 0; c < data[r].Length; ++c)
        oResult[r, c] = data[r][c]; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...