2010-03-06 9 views
44

मुझे लगता है कि वाक्यांश के लिए एक और तरीका यह होगा "क्या सी # में List<> जैसी कक्षा है, लेकिन यह जांचने के लिए अनुकूलित किया गया है कि कोई विशेष मूल्य मौजूद है या नहीं?" मुझे यकीन है कि मूल्यों के एक छोटे से सेट List<>.Contains शायद ठीक रहेगा, लेकिन अगर मेरे पास हजारों या लाखों मूल्यों का एक सेट है और यह पता लगाना चाहता था कि इसमें कोई निश्चित मूल्य है या नहीं?क्या कोई श्रेणी है जैसे <> सी # में, लेकिन केवल चाबियों के लिए, कोई मूल्य नहीं है?

मैंने Dictionary<object, int> बनाकर अतीत में इस तरह की चीज को लागू किया है और प्रत्येक कुंजी के लिए मान को 0 पर सेट कर दिया है, लेकिन यह वास्तव में उलझन में लगता है। और अब स्टैक ओवरफ्लो है, जहां मेरा बेवकूफ सवाल हजारों (दर्जनों, यहां तक ​​कि) के लिए शिक्षा में परिवर्तित किया जा सकता है। तो यहाँ यह है!

मैं भी यकीन है कि क्या इस तरह के एक वर्ग ही कहा जाता है, हो सकता है सेट के अलावा अन्य नहीं कर रहा हूँ, तो जाहिर विषय किया गया है पर खोज ... चुनौतीपूर्ण :)

+0

[सी # डेटा संरचना जैसे शब्दकोश के बिना संभावित डुप्लिकेट • एक मूल्य के बिना] (http://stackoverflow.com/questions/1363773/c-sharp-data-structure-like-dictionary-but-without-a-value) – slolife

उत्तर

56

HashSet<T> वर्ग का उपयोग करें।

संपादित करें: मैंने एक लंबे समय तक ऐसा करने में काफी समय बिताया जब तक कि मैंने ब्लॉग पढ़ने के दौरान इस वर्ग पर ठोकर खाई।

+0

+1, स्वीकार्य रूप से मैंने वही किया .. :) –

+2

इसके अलावा, .NET 4 में, यह कक्षा अब नए 'आईसेट ' इंटरफ़ेस को लागू करती है, इसके साथ-साथ नए चचेरे भाई 'सॉर्टेडसेट ', जो वही है , लेकिन आदेश semantics के साथ। –

+2

.NET 1.0 और 2.0 के अंधेरे दिनों में वापस हमने एक कक्षा बनाई जो अनिवार्य रूप से हैशसेट की तरह काम करता था लेकिन नीचे का एक शब्दकोश का उपयोग करता था। – jjxtra

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

  • कोई संबंधित समस्या नहीं^_^