-1
devexpress 컨트롤을 사용하고 있습니다. 아래 코드는 selectionChanged 이벤트에서 사용됩니다. 이 for 루프는 데이터가 큰 경우 성능이 저하됩니다. 이 방법을 최적화 할 수있는 방법이 있습니까?대용량 데이터의 루프 속도가 느린 경우
for (int i = 0; i < gridView.RowCount; i++)
{
int currentHandle = gridView.GetVisibleRowHandle(i);
var row = gridView.GetRow(currentHandle) as xxxx;
if (gridView.IsRowSelected(currentHandle) && !listSelectedItems.Contains(row))
{
listSelectedItems.Add(row);
}
else if (!gridView.IsRowSelected(currentHandle) && listSelectedItems.Contains(row))
{
listSelectedItems.Remove(row);
}
}
gridControl2.Datasource = listSelectedItems;
//sometimes refresh datasource is also slow and I tried using beginupdate and endupdate but they never helped
gridControl2.RefreshDatasource();
어쩌면 부울에 listSelectedItems.Contains()''의 반환을 지정, 당신은 두 번 전체 컬렉션을 통해 – maccettura
갈 것이다 의미 같은 기능에 두 번 확인하는' Remove()'호출이 많이 호출되면 호출이 비쌀 수 있습니다. 선택된 아이템 콜렉션을 순서대로 정렬 할 필요가 없다면, 당신은'HashSet'을 사용할 수 있습니다. – adv12