简体   繁体   中英

C# datagridview column into an array

I am building a program with c#, and have included a datagridview component into it. The datagridview has a fixed amount of columns (2), which I want to save into two separate arrays. The amount of rows does change though. How could I do this?

Assuming a DataGridView named dataGridView1 and you want to copy the contents of the first two columns into Arrays of strings, you can do something like this:

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++;
}

I used Jay's example and changed it to store all the rows in a single array for easy exporting. At the end you can easily use LogArray[0,0] to get the string from cell 0, column 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
        }

I hope i helped someone with this, its my first time posting any code online, ever. Also i haven't coded in ages just getting started again.

Try this:

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);
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM