मैं एक स्ट्रिंग किसी भी शब्द कसम खाता शामिल है कि क्या जांच करने की आवश्यकता में तार का एक सेट में से एक को खोजने के लिए सबसे तेज़ तरीका। अबसी # - एक और स्ट्रिंग
HashSet<string> swearWords = new HashSet<string>() { "word_one", "word_two", "etc" };
मैं अगर swearWords
में निहित मूल्यों के किसी भी मेरी स्ट्रिंग में हैं देखने की जरूरत:
एक और सवाल यहां से कुछ सलाह के बाद, मैं एक HashSet शब्दों से युक्त कर दिया।
मैंने देखा है यह इसका उल्टा किया, जैसे:
swearWords.Contains(myString)
लेकिन यह अवास्तविक लौटाते हैं।
जाँच करने के लिए करता है, तो HashSet वाला कोई भी शब्द myString
में हैं सबसे तेज़ तरीका क्या है?
एनबी: मैं समझ मैं बदले में प्रत्येक शब्द की जाँच करने के लिए, और तोड़ने यदि मिलान हो जाता है, मैं बस हो, तो एक तेज़ तरीका सोच रहा हूँ एक foreach पाश का उपयोग कर सकते हैं।
साथ आप क्यों कर रहे हैं किसी भी मिलान हैं 'हैशसेट' का उपयोग कर? यहां 'सूची' का उपयोग करना आसान हो सकता है। और उसके बाद 'myString' को एक सूची में विभाजित करें और आवश्यक तुलना करें। –
SkonJeet
@SkonJeet: यदि शब्द की कसम सूची बड़ी है, रोकथाम के लिए जाँच तेजी से एक 'List' की तुलना में एक' HashSet' के लिए किया जाएगा - और मैं नहीं देख सकता है कि एक 'List' यह किसी भी * आसान बनाना होगा *। –
मैं मूल रूप से एक सूची का उपयोग किया गया था और फिर इसे एक HashSet में बदला के रूप में मैंने पढ़ा है वे – surfitscrollit