Bildiğiniz gibi Delphi'de artık generic sınıfları kullanılabiliyor. Ancak generic.collections unit'nin içinde yer alan fonksiyonlar çoğumuzu tatmin etmemekte. Bu ihtiyacı gidermek adına ben Delphi'nin Generic.Collections unit'ini editledim. Birkaç yararlı fonksiyon ekledim.
//index ile silme
procedure RemovebyIndex(index:integer);
//value ve keyin birlikte olup olmadığını döndürür
function ContainsKeyValue(const Key:TKey;Value:TValue): integer;
//finding index by key, key ile indexi bulma
function FindIndexByKey(const Key:TKey):integer;
//finding key by index, index ile keyi bulma
function FindKeybyIndex(index:integer):TKey;
//finding value by index, index ile value'yu bulma
function FindValueFromIndex(index:integer):TValue;
Not: Uses kısmında uGenerics.pas'ı kullandığınız takdirde Generics.Collection unitini kullanmayın.
Ben delphi'nin tdictinary classını daha kullanışlı hale getirmek istemiştim. tlist için de bir fonksiyon ekledim. İsteyen olursa güncel halini gönderebilirim.
İyi çalışmalar.
In dubio pro reo... Şüpheden sanık/özgürlük yararlanır...
Bildiğiniz gibi Delphi'de artık generic sınıfları kullanılabiliyor. Ancak generic.collections unit'nin içinde yer alan fonksiyonlar çoğumuzu tatmin etmemekte. Bu ihtiyacı gidermek adına ben Delphi'nin Generic.Collections unit'ini editledim. Birkaç yararlı fonksiyon ekledim.
//index ile silme
procedure RemovebyIndex(index:integer);
//value ve keyin birlikte olup olmadığını döndürür
function ContainsKeyValue(const Key:TKey;Value:TValue): integer;
//finding index by key, key ile indexi bulma
function FindIndexByKey(const Key:TKey):integer;
//finding key by index, index ile keyi bulma
function FindKeybyIndex(index:integer):TKey;
//finding value by index, index ile value'yu bulma
function FindValueFromIndex(index:integer):TValue;
Not: Uses kısmında uGenerics.pas'ı kullandığınız takdirde Generics.Collection unitini kullanmayın.
Merhaba
TDictionary sınıfına extension methodlar olarak da eklenebilir.
Böylelikle mevcut Generics.Collection uniti üzerinde herhangi bir editleme yapmadan, TDictionary sınıfına yeni methodlar eklemiş oluruz.
xe5 ve xe6'da denemiştim. freepascal'da ise sorunsuz derliyor ama tanımlama biraz farklı. Tdictionary yerine freepascal'da fgl uniti içinde TFPGMap generic classı var. Ben kendim test için Tdictionary verdiğim şöyle bir generic class oluşturdum test için: