मुझे उच्च-प्रदर्शन केस-असंवेदनशील स्ट्रिंग तुलनाओं की बहुत कुछ करने की आवश्यकता है और मुझे एहसास हुआ कि यह करने का मेरा तरीका। छोटा()। ट्रिम() वास्तव में बेवकूफ था क्योंकि सभी नए तारString.comparison प्रदर्शन (ट्रिम के साथ)
तो मैं एक छोटे से चारों ओर खोदा आवंटित किया जा रहा और इस तरह से बेहतर लगता है:
String.Compare(txt1,txt2, StringComparison.OrdinalIgnoreCase)
समस्या सिर्फ यहाँ है कि मैं आगे या रिक्त स्थान, यानी ट्रिम() अनुगामी अनदेखी करने के लिए अगर मैं ट्रिम मैं उपयोग करना चाहते हैं, लेकिन स्ट्रिंग आवंटन के साथ एक ही समस्या है। मुझे लगता है कि मैं प्रत्येक स्ट्रिंग की जांच कर सकता हूं और देख सकता हूं कि यह स्टार्ट्सविथ ("") या एंड्स विथ ("") और केवल तब ट्रिम करें। या तो उस या सूचकांक, प्रत्येक स्ट्रिंग के लिए लंबाई यह पता लगाने और ओवरराइड
public static int Compare
(
string strA,
int indexA,
string strB,
int indexB,
int length,
StringComparison comparisonType
)
string.Compare को पारित लेकिन वह नहीं बल्कि गन्दा लगता है और मैं शायद कुछ पूर्णांकों का उपयोग करने के लिए अगर मैं कर न एक वास्तव में बड़ी है, तो-और कुछ दोनों तारों पर पीछे और अग्रणी रिक्त स्थान के हर संयोजन के लिए बयान ... तो एक सुरुचिपूर्ण समाधान के किसी भी विचार?
public bool IsEqual(string a, string b)
{
return (string.Compare(a, b, StringComparison.OrdinalIgnoreCase) == 0);
}
public bool IsTrimEqual(string a, string b)
{
if (Math.Abs(a.Length- b.Length) > 2) // if length differs by more than 2, cant be equal
{
return false;
}
else if (IsEqual(a,b))
{
return true;
}
else
{
return (string.Compare(a.Trim(), b.Trim(), StringComparison.OrdinalIgnoreCase) == 0);
}
}
आपको क्या लगता है कोई समस्या है बनाता है? समयपूर्व अनुकूलन एक बुरा विचार है - जब तक आपका एप्लिकेशन "बहुत धीमा" न हो जाए तब तक अनुकूलित करने की कोई आवश्यकता नहीं है। इस बीच, फास्ट कोड पर स्पष्ट कोड पर ध्यान केंद्रित करें। –
क्या आप सुनिश्चित कर सकते हैं कि संकलक आपके लिए ऐसे मामले को अनुकूलित नहीं कर रहा है? –
मैं यह भी पूछूंगा कि क्या इसे वास्तव में माइक्रो-अनुकूलन की आवश्यकता है? क्या आपके पास वास्तव में इस क्षेत्र में एक प्रदर्शन मुद्दा है? मैं वहाँ अन्य क्षेत्रों जहां प्रदर्शन में एक बड़ा सौदा अधिक सुधार हो सकता है – AdaTheDev