मैं कुछ पिक्सेल स्थानों को डुप्लिकेट की अनुमति के बिना संग्रहीत करना चाहता था, इसलिए पहली बात यह है कि मन में आता है HashSet<Point>
या इसी तरह की कक्षाएं। हालाँकि ऐसा कुछ की तुलना में बहुत धीमा लगता है HashSet<string>
।
उदाहरण के लिए, यह कोड:
HashSet<Point> points = new HashSet<Point>();
using (Bitmap img = new Bitmap(1000, 1000))
{
for (int x = 0; x < img.Width; x++)
{
for (int y = 0; y < img.Height; y++)
{
points.Add(new Point(x, y));
}
}
}
लगभग 22.5 सेकंड लगते हैं।
जबकि निम्नलिखित कोड (जो स्पष्ट कारणों के लिए एक अच्छा विकल्प नहीं है) केवल 1.6 सेकंड लेता है:
HashSet<string> points = new HashSet<string>();
using (Bitmap img = new Bitmap(1000, 1000))
{
for (int x = 0; x < img.Width; x++)
{
for (int y = 0; y < img.Height; y++)
{
points.Add(x + "," + y);
}
}
}
तो, मेरे सवाल हैं:
- क्या इसका कोई कारण है? मैंने इस उत्तर की जाँच की , लेकिन 22.5 सेकंड उस उत्तर में दर्शाई गई संख्या से अधिक है।
- क्या डुप्लिकेट के बिना अंक स्टोर करने का एक बेहतर तरीका है?