ListView und addRange
-
Hallo Leute,
ich habe ein Problem, und zwar will ich ein ListView befüllen.
Es sind viele Elemente die ich einfügen will (so um die 2000), nun hat das
sehr lange gedauert jedes Element per Add hinzuzufügen. In der MSDN habe ich gelsesen man soll AddRange benutzen. Aber das akzeptiert nur fixes Arrays und keine ArrayLists (ich brauche dynamische Listen weil ich vorher nicht weiss wieviel daten ankommen).
Ich wollte auf die ListViewItem Collection wechseln, aber die kann man nur erstellen wenn man ihr ein ListView übergibt.Welche Collection Klasse könnte ich den verwenden, dammit ich die gesammte Collection dem ListView übergeben kann und ist das dann auch schnell?
Oder gibts vieleicht eine bessere Möglichkeit eine Collection voller ListViewItems in die ListView zu schreiben?
Danke für eure Hilfe
-
So habe ne lösung gefunden
void frmBrowse::FillDetailsList(ArrayList^ aItems) { m_lvDetails->BeginUpdate(); m_lvDetails->Items->AddRange( (cli::array<ListViewItem^, 1> ^)aItems->ToArray(aItems[0]->GetType()) ); m_lvDetails->EndUpdate(); }
Damit geht es schneller, aber wenn jemand noch eine bessere Lösung kennt, kann er diese hier gerne Posten
Danke Schön...
-
Och
Habe gerade in der MSDN gelesen, dass die Methode ToArray(Type)
eine Laufzeit von O(n) hat, also auch nicht die optimale Lösung