В следующем коде 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
Мне нужно все циклыстроки, чтобы получить список из пары ячеек столбцов строк, которые не отображаются в виде сетки.Есть ли более быстрый способ сделать это?Могу ли я просто зациклить источник данных представления сетки данных?Не уверен, работает ли он после сортировки сетки по некоторым столбцам.