Article View: pl.comp.lang.delphi
Article #334910Re: TDictionary<> i kolejnosc dodawania
From: wloochacz
Date: Tue, 24 Jan 2012 10:48
Date: Tue, 24 Jan 2012 10:48
24 lines
1995 bytes
1995 bytes
W dniu 2012-01-24 11:29, R.e.m.e.K pisze: > Witam > > TDictionary<Key,Value> tworzy hastabla indeksowanego po Keyu, wiec po > zapisaniu kolejno do slownika 10 pozycji sa one ukladane wewnetrznie w innej > kolejnosci niz kolejnosc dodawania przez co ich odczyt for-in loopem nie > zwraca ich w kolejnoci dodawania. Oczywiscie dzieki temu algorytm > wyszukiwania jest bardzo szybki, ale traci sie oryginalna kolejnosc, ktora > czasem jest przydatna. Czy jest sposob, aby zmusic TDictionary, by kosztem > wydajnosci zachowywalo oryginalny porzadek dodawania elementow? > Wiem, ze moge uzyc zamiast TDictionary np. TList<TPair<Key,Value>> ale > jednak TDictionary ma kilka wygodnych metod :-P Jakich metod? Nadpisz TDictionary, nadpisz metodę Add (a właściwie DoAdd) żeby dodawać indeks, zaimplementuj enumerator żeby for-in działał jak chcesz. Pamiętaj, że TDictionary posiada trzy enumeratory (TPairEnumerator, TValueEnumerator i TKeyEnumerator) dla trzech kolekcji: para (Key = Value), ale nie musisz ich implmentować jeśli posługujesz się np. tylko enumeratorem TPair<T, T>; -- wloochacz
Technical Details
Message-ID:
<jfm2a6$rep$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<1ap3bo51k49nb.dlg@hell.heaven>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: wloochacz <wloochacz@nospam.nie.gmail.com> Newsgroups: pl.comp.lang.delphi Subject: Re: TDictionary<> i kolejnosc dodawania Date: Tue, 24 Jan 2012 11:48:28 +0100 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 24 Message-ID: <jfm2a6$rep$1@inews.gazeta.pl> References: <1ap3bo51k49nb.dlg@hell.heaven> NNTP-Posting-Host: mainframe.rene.com.pl Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1327402118 28121 193.239.124.200 (24 Jan 2012 10:48:38 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Tue, 24 Jan 2012 10:48:38 +0000 (UTC) X-User: wloochacz In-Reply-To: <1ap3bo51k49nb.dlg@hell.heaven> User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0) Gecko/20111222 Thunderbird/9.0.1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit