C # datagridview столбец в массив - PullRequest
5 голосов
/ 07 апреля 2011

Я создаю программу на c # и включил в нее компонент datagridview. Сетка данных имеет фиксированное количество столбцов (2), которые я хочу сохранить в два отдельных массива. Хотя количество строк меняется. Как я мог это сделать?

Ответы [ 3 ]

11 голосов
/ 07 апреля 2011

Предполагая DataGridView с именем dataGridView1 и вы хотите скопировать содержимое первых двух столбцов в массивы строк, вы можете сделать что-то вроде этого:

string[] column0Array = new string[dataGridView1.Rows.Count];
string[] column1Array = new string[dataGridView1.Rows.Count];

int i = 0;
foreach (DataGridViewRow row in dataGridView1.Rows) {
    column0Array[i] = row.Cells[0].Value != null ? row.Cells[0].Value.ToString() : string.Empty;
    column1Array[i] = row.Cells[1].Value != null ? row.Cells[1].Value.ToString() : string.Empty;
    i++;
}
3 голосов
/ 27 мая 2013

Я использовал пример Джея и изменил его, чтобы сохранить все строки в одном массиве для простого экспорта. В конце вы можете легко использовать LogArray [0,0], чтобы получить строку из ячейки 0, столбца 0.

        // create array big enough for all the rows and columns in the grid
        string[,] LogArray = new string[dataGridView1.Rows.Count, dataGridView1.Columns.Count];

        int i = 0;
        int x = 0;
        foreach (DataGridViewRow row in dataGridView1.Rows)
        {
            while (x < dataGridView1.Columns.Count)
            {
                LogArray[i, x] = row.Cells[x].Value != null ? row.Cells[x].Value.ToString() : string.Empty;
                x++;
            }

            x = 0;
            i++; //next row
        }

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

3 голосов
/ 07 апреля 2011

Попробуйте это:

ArrayList col1Items = new ArrayList();
ArrayList col2Items = new ArrayList();

foreach(DataGridViewRow dr in dgv_Data.Rows)
{
  col1Items.Add(dr.Cells[0].Value);
  col2Items.Add(dr.Cells[1].Value);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...