2011-06-16 10 views
30

है, तो मुझे आश्चर्य है कि मैं कैसे जांच सकता हूं कि स्ट्रिंग में "value1" या "value2" है या नहीं? मैं इस कोशिश की:VB.NET - यदि स्ट्रिंग में "value1" या "value2"

If strMyString.Contains("Something") Then 

End if 

यह काम करता है, लेकिन यह नहीं करता है:

If strMyString.Contains("Something") or ("Something2") Then 

End if 

यह मैं त्रुटि है कि लंबे समय के लिए स्ट्रिंग से रूपांतरण नहीं किया जा सकता देता है। यदि मैंने पहले के कोष्ठक के अंदर or ("Something2") डाला है, तो यह मुझे त्रुटि देता है कि स्ट्रिंग को बुलीयन में परिवर्तित नहीं किया जा सकता है।

तो मैं कैसे जांच सकता हूं कि स्ट्रिंग में "स्ट्रिंग 1" या "स्ट्रिंग 2" बहुत अधिक कोड लिखने के बिना है या नहीं?

उत्तर

58

आप इस तरह यह क्या करना है:

If strMyString.Contains("Something") OrElse strMyString.Contains("Something2") Then 
    '[Put Code Here] 
End if 
+0

मैं आगे बढ़ूंगा और इसे उत्तर के रूप में सेट करूँगा, क्योंकि आप एक नए उपयोगकर्ता हैं :) –

+9

मैं Or, OrElse के संक्षिप्त सर्किट संस्करण का उपयोग करने का सुझाव दूंगा। – dbasnett

+1

स्वच्छ कोड के लिए कृपया strMyString.Contains ("Something2") के अंत में तारांकन हटाएं * << --- – RicardoBalda

2

आप अपने आप में ("Something2") है - आप इसे इसलिए परीक्षण करने के लिए जरूरत है एक बूलियन दिया जाता है:

If strMyString.Contains("Something") or strMyString.Contains("Something2") Then 
+0

बेशक, यह सब अब समझ में आता है :) –

11

आप की जरूरत है इस

If strMyString.Contains("Something") or strMyString.Contains("Something2") Then 
    'Code 
End if 
+0

मुझे विश्वास नहीं है कि मैंने यह कोशिश नहीं की .. और इतनी त्वरित प्रतिक्रिया! :) –

0
If strMyString.Contains("Something") or strMyString.Contains("Something2") Then 

End if 

त्रुटि को इंगित करता संकलक सोचता है कि आप चाहते हैं एक बूलियन और एक स्ट्रिंग पर थोड़ा सा OR करने के लिए। कौन सा काम नहीं करेगा।

0
If strMyString.Tostring.Contains("Something") or strMyString.Tostring.Contains("Something2") Then 


    End if 
3

जवाब पहले ही दिया यह अगर तुम OrElse बजाय Or उपयोग करें, क्योंकि दूसरे टेस्ट लघु सर्किट है जल्दी हो जाएगा के अलावा।

If strMyString.Contains("Most Likely To Find") OrElse strMyString.Contains("Less Likely to Find") Then 
    'Code 
End if 
4

यहाँ एक विशेष स्ट्रिंग कुछ पूर्वनिर्धारित स्ट्रिंग है कि क्या जांच करने के लिए वैकल्पिक समाधान है: यह विशेष रूप से सच है, तो आप जानते हैं कि एक स्ट्रिंग अन्य जो मामले जगह यह पहली की तुलना में अधिक होने की संभावना है। यह IndexOf समारोह का उपयोग करता है:

'this is your string 
Dim strMyString As String = "aaSomethingbb" 

'if your string contains these strings 
Dim TargetString1 As String = "Something" 
Dim TargetString2 As String = "Something2" 

If strMyString.IndexOf(TargetString1) <> -1 Or strMyString.IndexOf(TargetString2) <> -1 Then 

End If 

नोट: यह समाधान 2010

-2

दिलचस्प दृश्य स्टूडियो के साथ परीक्षण किया गया है, इस समाधान तोड़ सकते हैं, लेकिन एक वैकल्पिक हल: मेरी डेटाबेस KeyWorks.accdb कहा जाता है के लिए खोज रहे जो मौजूद होना चाहिए:

भागो इस:

मंद strDataPath स्ट्रिंग = GetSetting के रूप में ("KeyWorks", "datapath", "01", "") 'से मिलता है रजिस्ट्री

यदि strDataPath नहीं है। ("KeyWorks.accdb") तो .... आदि।

यदि मेरे डेटाबेस को KeyWorksBB.accdb नाम दिया गया है, तो अगर कथन इस स्वीकार्य को मिलेगा और अगर कथन से बाहर निकल जाएगा क्योंकि इसे वास्तव में KeyWorks और accdb मिल गया था।

यदि मैं एकल उद्धरण ("'KeyWorks.accdb'") के साथ अगर कथन क्वालीफायर को घेरता हूं, तो यह अब क्रमशः सभी लगातार वर्णों को देखता है और यदि ब्लॉक से मेल नहीं खाता है तो यह ब्लॉक नहीं करेगा।