यह जांचने का सबसे तेज़ तरीका क्या होगा कि किसी स्ट्रिंग में C# में स्ट्रिंग सरणी में कोई मिलान है या नहीं? मैं इसे लूप का उपयोग कर कर सकता हूं, लेकिन मुझे लगता है कि यह बहुत धीमा होगा।सी # जांचें कि क्या स्ट्रिंग में स्ट्रिंग सरणी में कोई मिलान है
उत्तर
आप स्ट्रिंग्स या कथन के साथ स्ट्रिंग को जोड़ सकते हैं, और फिर "इसे एक पास में करें", लेकिन तकनीकी रूप से रेगेक्स अभी भी आंतरिक रूप से लूप कर रहा है। अंत में, लूपिंग आवश्यक है।
ठीक है, मैंने इसे एक लूप के साथ किया है। – david
@ डेविड, यहां तक कि regex को लूप की जरूरत है, मुझे लगता है कि ज्यादातर मामलों में यह मैन्युअल रूप से ऐसा करने से अभी भी तेज़ है। इसके अलावा, यह क्लीनर कोड में मदद करता है और इस प्रकार बनाए रखने में आसान है, कहें, आपको मैचों मानदंडों को बदलने की जरूरत है। – xandy
कुछ लोग, जब किसी समस्या का सामना करते हैं, तो सोचें "मुझे पता है, मैं नियमित अभिव्यक्तियों का उपयोग करूंगा।"अब उन्हें दो समस्याएं हैं। –
का प्रयोग LINQ:
return array.Any(s => s.Equals(myString))
दी, तो आप खाते में संस्कृति और मामले को लेने के लिए चाहते हो सकता है, लेकिन यह सामान्य विचार है। इसके अलावा, यदि समानता आपके "मैचों" से नहीं है, तो आप हमेशा "मैच" के लिए उपयोग करने के लिए आवश्यक फ़ंक्शन कर सकते हैं।
उल्लेख नहीं है: आप अभी भी लूपिंग कर रहे हैं - बस दृश्यों के पीछे। – Dinah
यदि "सरणी" कभी भी कभी नहीं बदलेगी (या केवल बार-बार बदल जाएगी), और आपके पास कई इनपुट स्ट्रिंग होंगे जिनके बारे में आप परीक्षण कर रहे हैं, तो आप सरणी से HashSet<string>
बना सकते हैं। HashSet<T>.Contains
एक ओ (1) ऑपरेशन है, क्योंकि एक लूप के विपरीत ओ (एन) है।
लेकिन हैशसेट बनाने के लिए इसमें कुछ (छोटा) समय लगेगा। यदि सरणी अक्सर बदल जाएगी, तो एक लूप इसे करने का एकमात्र यथार्थवादी तरीका है।
अगर यह पूरी तरह से सबसे तेज़ तरीका है, लेकिन तरीके मैं आमतौर पर यह किया है में से एक है मैं वास्तव में आपको नहीं बता सकता:
यह जाँच करेगा स्ट्रिंग सरणी से तार के किसी भी शामिल है:
string[] myStrings = { "a", "b", "c" };
string checkThis = "abc";
if (myStrings.Any(checkThis.Contains))
{
MessageBox.Show("checkThis contains a string from string array myStrings.");
}
यदि स्ट्रिंग सभी स्ट्रिंग्स सरणी के (तत्व) होते हैं, बस myStrings.All
के लिए अगर बयान में myStrings.Any
बदलने की जाँच करें।
मैं आवेदन की किस तरह यह है पता नहीं है, लेकिन मैं अक्सर उपयोग करने की आवश्यकता:
if (myStrings.Any(checkThis.ToLowerInvariant().Contains))
तो अगर आप उपयोगकर्ता इनपुट को देखने के लिए जाँच कर रहे हैं, इससे कोई फर्क नहीं होगा, उपयोगकर्ता में प्रवेश करती है कि क्या कैपिटल अक्षरों में स्ट्रिंग, इसे आसानी से ToLowerInvariant() का उपयोग करके उलट किया जा सकता है।
आशा है कि इससे मदद मिलेगी!
यह अच्छा है लेकिन क्या होगा यदि आप विपरीत दिशा में चेक करना चाहते थे ... यानी जांच करें कि उस सबस्ट्रिंग सरणी –
वह मेरे लिए ठीक काम करता है:
string[] characters = new string[] { ".", ",", "'" };
bool contains = characters.Any(c => word.Contains(c));
के आइटम्स में मौजूद है या नहीं, यह एकमात्र ऐसा है जो 'कहां' कथन के अंदर काम करता है एएसपी.नेट कोर में। – VSG24
- 1. जांचें कि स्ट्रिंग में सरणी
- 2. जांचें कि स्ट्रिंग में
- 3. जांचें कि स्ट्रिंग में कोई अन्य स्ट्रिंग नहीं है
- 4. एक्शनस्क्रिप्ट 3: जांचें कि स्ट्रिंग में कोई अन्य स्ट्रिंग है
- 5. जांचें कि क्या स्ट्रिंग
- 6. जांचें कि कोई मान किसी सरणी में है (सी #)
- 7. जांचें कि क्या स्ट्रिंग में एस्टेरisk (*)
- 8. जांचें कि क्या स्ट्रिंग में संख्या
- 9. जांचें कि क्या स्ट्रिंग स्लाइस में गो
- 10. जांचें कि कोई स्ट्रिंग एक यूआरएल है
- 11. जांचें कि कोई स्ट्रिंग एक्सएमएल स्वरूपित है
- 12. जांचें कि क्या स्ट्रिंग में एक सबस्ट्रिंग
- 13. जांचें कि एक स्ट्रिंग
- 14. जांचें कि क्या चर स्ट्रिंग या सरणी है Twig
- 15. जांचें कि स्ट्रिंग में स्ट्रिंग [] है ArrayList <string>
- 16. जांचें कि स्ट्रिंग खाली है
- 17. कैसे जांचें कि दो स्ट्रिंग सी # में आंशिक मिलान है या नहीं?
- 18. जांचें कि स्ट्रिंग सामग्री में कोई HTML है या नहीं?
- 19. जांचें कि स्ट्रिंग में प्रमुख अक्षरों
- 20. स्ट्रिंग सरणी में स्ट्रिंग स्ट्रिंग
- 21. केएसएच जांचें कि स्ट्रिंग
- 22. jQuery: जांचें कि स्ट्रिंग
- 23. जांचें कि स्ट्रिंग
- 24. जांचें कि स्ट्रिंग टैब
- 25. सरणी में स्ट्रिंग स्ट्रिंग
- 26. जांचें कि स्ट्रिंग में केवल अंक हैं
- 27. जांचें कि क्या स्ट्रिंग खाली है या सी #
- 28. जांचें कि क्या स्ट्रिंग में दिनांक है या नहीं
- 29. जांचें कि वर्तमान Emacs बफर में स्ट्रिंग
- 30. PHP जांचें कि फ़ाइल में स्ट्रिंग
तुम्हें क्या लगता है यह बहुत धीमी गति से किया जाएगा करते हैं? क्या आपने इसका परीक्षण किया है? आपके डेटा सेट का सामान्य आकार क्या है? ऐसा अनुमान लगाना समय की बर्बादी है। –
क्या आप इनपुट और वांछित परिणाम को स्पष्ट कर सकते हैं? –
इसमें लगभग 60 आइटम हैं, लेकिन उसी घटना में मेरे पास अधिक कोड है। प्रदर्शन ठीक है, लेकिन मैं बस सोच रहा था कि क्या मैं इसे अनुकूलित कर सकता था। – david