अगर मैं निम्नलिखित बयान निष्पादित करें:स्ट्रिंग क्यों होता है। कॉम्पैयर उच्चारण अक्षरों को असंगत रूप से संभालता प्रतीत होता है?
string.Compare("mun", "mün", true, CultureInfo.InvariantCulture)
परिणाम है '-1', यह दर्शाता है कि 'मुन' 'मुन' की तुलना में कम संख्यात्मक मान है।
हालांकि, अगर मैं इस कथन निष्पादित करें:
string.Compare("Muntelier, Schweiz", "München, Deutschland", true, CultureInfo.InvariantCulture)
मैं '1', यह दर्शाता है कि 'Muntelier, Schewiz' पिछले जाना चाहिए।
क्या यह तुलना में एक बग है? या, अधिक संभावना है, वहाँ एक नियम मैं ध्यान में रखते हुए किया जाना चाहिए जब तार छँटाई युक्त उच्चारण
कारण यह कोई मुद्दा है, मैं एक सूची को क्रमबद्ध कर रहा हूँ और फिर कोई मैन्युअल द्विआधारी फिल्टर है कि मतलब है कर रही है 'xxx' से शुरू होने वाली प्रत्येक स्ट्रिंग प्राप्त करने के लिए।
पहले मैं लिंक 'कहां' विधि का उपयोग कर रहा था, लेकिन अब मुझे किसी अन्य व्यक्ति द्वारा लिखे गए इस कस्टम फ़ंक्शन का उपयोग करना है, क्योंकि वह कहता है कि यह बेहतर प्रदर्शन करता है।
लेकिन कस्टम फ़ंक्शन को ध्यान में नहीं आता है जो भी 'यूनिकोड' नियम .NET है। इसलिए यदि मैं इसे 'मुन' द्वारा फ़िल्टर करने के लिए कहता हूं, तो यह किसी भी आइटम को नहीं ढूंढता है, भले ही 'मुन' से शुरू होने वाली सूची में आइटम हों।
यह उच्चारण वर्णों के बाद कौन से पात्रों के आधार पर उच्चारण किए गए अक्षरों के असंगत क्रम के कारण प्रतीत होता है।
ठीक है, मुझे लगता है कि मैंने समस्या ठीक कर दी है।
फिल्टर से पहले, मैं एक तरह से प्रत्येक स्ट्रिंग, जहां n खोज स्ट्रिंग की लंबाई है की पहली n पत्र के आधार पर करते हैं।
यह इस है कि मैं .नेट फ्रेमवर्क इच्छा की तरह क्षणों है तुलना की जाती है तो कर रहे हैं ओपन-सोर्स था, इसलिए मैं डीबग मोड में बस जा सकता था और यह पता लगा सकता था कि यह क्या कर रहा है। – Jonathan
@ जोनाथनकॉवे: बेस क्लास लाइब्रेरी के स्रोत कोड के माध्यम से कदम उठाना संभव है, http://blogs.msdn.com/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net- फ्रेमवर्क-स्रोत-कोड.aspx –
@divo संदर्भ के लिए धन्यवाद। कभी नहीं पता था कि यह संभव था! – Jonathan