2009-06-30 12 views
7

मैं निम्नलिखित कोड है:THashedStringList डुप्लीकेट को अनदेखा क्यों नहीं करता है?

var 
    sl: THashedStringList; 
begin 
    sl:= THashedStringList.Create; 
    sl.Duplicates := dupIgnore; 
    sl.Add('12345'); 
    sl.Add('12345'); 
    sl.Add('12345'); 
    sl.Add('12345'); 
    sl.Add('12345'); 
    sl.Add('12345'); 
    sl.Add('12345'); 
    ShowMessage(IntToSTr(sl.Count)); 
end; 

लेकिन जब मैं sl.Count देखते हैं, यह मेरे 7. देता है इस में बग क्या है?

उत्तर

15

सूची को डुप्लिकेट को अनदेखा करने के लिए आपको Sorted संपत्ति को TRUE पर सेट करने की आवश्यकता है। संपत्ति TStringList से प्राप्त होती है, और यदि आप TStringList.Duplicates के लिए दस्तावेज़ को देखने के आप पाएँगे:

नोट: यदि सूची पृथक नहीं किया जा रहा है डुप्लिकेट कुछ नहीं करता है।

+4

और ऐसा इसलिए है क्योंकि THashedStringList को TStringList से अपनी डुप्लिकेट्स संपत्ति, साथ ही साथ विधि विधि के लिए इसके व्यवहार को विरासत में मिला है। इस पवन के उदाहरण में थैशस्ट्रिंगलिस्ट के बारे में कुछ भी खास नहीं है। –

+0

टिप्पणी के लिए धन्यवाद, मैंने तदनुसार जवाब संपादित किया। – mghie

+0

क्षमा करें, गूंगा गलती। – Pavan

संबंधित मुद्दे