चूंकि कोई मामला असंवेदनशील string.Contains()
नहीं है (फिर भी string.Equals()
का मामला असंवेदनशील संस्करण मौजूद है जो मुझे परेशान करता है, लेकिन मैं digress) .NET में, क्या है का उपयोग कर RegEx.IsMatch()
बनाम उपयोग के बीच प्रदर्शन अंतर?RegEx.IsMatch() बनाम स्ट्रिंग.ToUpper()।() प्रदर्शन शामिल है() प्रदर्शन
उदाहरण:
string testString = "tHiSISaSTRINGwiThInconSISteNTcaPITaLIZATion";
bool containsString = RegEx.IsMatch(testString, "string", RegexOptions.IgnoreCase);
bool containsStringRegEx = testString.ToUpper().Contains("STRING");
मैं हमेशा सुना है कि string.ToUpper()
एक बहुत ही महंगा कॉल तो मैं इसे का उपयोग जब मैं string.Contains()
तुलना करना चाहते हैं से संकोच है, लेकिन कैसे RegEx.IsMatch()
प्रदर्शन के मामले में की तुलना करता है?
क्या ऐसी तुलना करने के लिए कोई और अधिक कुशल दृष्टिकोण है?
string testString = "tHiSISaSTRINGwiThInconSISteNTcaPITaLIZATion";
bool contained = testString.IndexOf("string", StringComparison.OrdinalIgnoreCase) >= 0;
आप एक संस्कृति के प्रति संवेदनशील तुलना की जरूरत है, CurrentCultureIgnoreCase
बजाय OrdinalIgnoreCase
का उपयोग करें:
क्या आपने [स्टॉपवॉच] (http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx) का उपयोग करने का प्रयास किया है? – Sayse
यह जानने का एकमात्र तरीका है कि कौन सा तेज़ है, उन्हें चलाने और उन्हें चलाने का एकमात्र तरीका है। इससे मदद मिल सकती है: http://stackoverflow.com/questions/457605/how-to-measure-code-performance-in-net – kevingessner
'testString.IndexOf ("स्ट्रिंग", स्ट्रिंग कॉम्पर्सन। कंटेंटकल्चर इग्नोरकेस)> = 0' के बारे में क्या? –