datagridview.Rows [i] очень медленно? - PullRequest
0 голосов
/ 23 февраля 2019

В следующем коде dgv.Rows[i] очень медленный.

var firstVisible = dgv.FirstDisplayedScrollingRowIndex;
var visibleCount = dgv.DisplayedRowCount(true);
for (var i = 0; i < dgv.Rows.Count; i++) // 20K+ rows, maybe 100K rows
{
    var row = dgv.Rows[i];
    if (i < firstVisible || i > firstVisible + visibleCount) { AddKeyCellValuesToHashSet(row); }
    else { AddKeyCellValueAndDGVRowToDictionary(row); } // visible rows

Использование ЦП диагностических инструментов показывает, что вызываемая функция

System.Windows.Forms.DataGridViewRowCollection.get_item(Int32)$#...1669

Мне нужно все циклыстроки, чтобы получить список из пары ячеек столбцов строк, которые не отображаются в виде сетки.Есть ли более быстрый способ сделать это?Могу ли я просто зациклить источник данных представления сетки данных?Не уверен, работает ли он после сортировки сетки по некоторым столбцам.

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