У меня есть следующий код:Как я могу заполнить DataGridView быстрее с #
private void copyCloneRowFromdgvCustomMainTodgvCustomSingleExtraction(int[] vect)
{
dgvCustomSingleExtraction.Rows.Clear();
DataGridViewRow row = new DataGridViewRow();
int i = 0;
dgvCustomSingleExtraction.ColumnCount = dgvCustomMain.ColumnCount;
for (; i < dgvCustomMain.ColumnCount; i++)
dgvCustomSingleExtraction.Columns[i].HeaderCell.Value = dgvCustomMain.Columns[i].HeaderCell.Value;
for (i = 0; i < vect.Length; i++)
{
int intColIndex = 0;
row = (DataGridViewRow)dgvCustomMain.Rows[vect[i]].Clone();
foreach (DataGridViewCell cell in dgvCustomMain.Rows[vect[i]].Cells)
{
row.Cells[intColIndex].Value = cell.Value;
intColIndex++;
}
dgvCustomSingleExtraction.Rows.Add(row);
}
}
С помощью этого метода я хочу создать новый DataGridView
со случайными строками, которые в dgvCustomMain
. Поэтому я использовал int[] vect
, что это массив со случайным числом (от 0
до dgvCustomMain.Count - 1
). Теперь, если массив мал, например, 1500 элементов, он принимает 188ms
, если массив больше (например, 15000 элементов), он занимает около 1800 мс, и если он более крупный, как 150000 элементов, он занимает около 20 секунд. Теперь мой вопрос: как я могу заполнить datagridview быстрее?
EDIT
Я смотрю here, но я не понимаю, как его реализует. Кто-то может мне помочь?