2012-05-02 12 views
7

तो मैं एक सशर्त है कि वर्तमान में इस तरह दिखता है ...जाँच हो रही है कई एक स्ट्रिंग

if (input.Contains(",") || input.Contains("/") || input.Contains(@"\") || input.Contains(".")) 

मैं और कुछ और अक्षर हैं जो मैं के लिए जाँच करना चाहते हैं जोड़ने की जरूरत है, तो वहाँ एक और अधिक सोच रहा था पर शामिल एक ही चीज़ को पूरा करने के लिए संघनित वाक्यविन्यास? एसक्यूएल के आईएन ऑपरेटर के समान कुछ?

if (input IN (",", "/", @"\", ....etc) ) 

कोई भी कोड को जोड़ने के बिना इसे पूरा करने के लिए किसी भी शांत चाल के बारे में जानता है?

+0

इस सवाल http://stackoverflow.com/questions/194930/how-do-i-use-linq-containsstring-instead-of-containsstring – hatchet

+0

मुझे लगता है कि सवाल देखा के समान है, मैं था उम्मीद है कि मुझे एक आसान समाधान मिल सकता है क्योंकि मैं उन सभी पात्रों को जानता हूं जिन्हें मैं समय से पहले खोज रहा हूं (जो मुझे सभी उत्तरों के लिए धन्यवाद है!)। –

+0

संभवतः डुप्लिकेट [VB.NET - 1 से अधिक स्ट्रिंग को जोड़ना]। Http://stackoverflow.com/questions/2212719/vb-net-adding-more-than-1-string-to-contains) – KyleMit

उत्तर

22

का उपयोग कर Regex पर विचार करें (अक्षर आप कोष्ठक में जाँच करना चाहते हैं निर्दिष्ट - याद रखें कि उनमें से कुछ भाग निकले होने चाहिए):

Regex.IsMatch(input, @"[,/]"); 

या

new[] {",", "/"}.Any(input.Contains) 
8

कैसे इस बारे में? इसके लिए स्ट्रिंग को स्कैन करेगा -

if (",/\\.".ToCharArray().Any(c => input.Contains(c))) 
+0

बस एक बात: इंडेक्सऑफनी केवल एक ही अक्षर को संभालती है, यह तारों को संभाल नहीं देती है। – empi

+0

ओपी में केवल एक अक्षर की जांच की जाती है। – ja72

+1

बेशक, यह सिर्फ एक साइड नोट था, क्योंकि इंडेक्सऑफ वास्तव में स्ट्रिंग के साथ एक ओवरलोडेड संस्करण है। – empi

2

If (input.IndexOfAny(new char[] { ',', '/', '\\', '.' }) >= 0) { 
    ... 
} 

या

If (input.IndexOfAny(@",/\.".ToCharArray()) >= 0) { 
    ... 
} 
3

आप कुछ Linq इस्तेमाल कर सकते हैं की कोशिश करो किसी सरणी में अक्षरों के सेट में से कोई भी:

if (e.Label.IndexOfAny(new char[]{',', '/', @'\', '.' /* other chars here */}) > -1) 
3

आप String.IndexOfAny इस्तेमाल कर सकते हैं:

if(input.IndexOfAny(new char[] { ',', '/', '\\', '.' })>=0) 
    { 

    } 
5

क्या यह कम से कम जीतता है?

@".,/\".Any(input.Contains) 
3
"asdfasdf".ContainsAny(".","/","4"); 

public static bool ContainsAny(this string stringToCheck, params string[] parameters) 
{ 
    return parameters.Any(parameter => stringToCheck.Contains(parameter)); 
} 
+0

सी # में काम नहीं करता है। प्रकार स्ट्रिंग में "ContainsAny" की परिभाषा नहीं है – Drkawashima

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