मैंने पढ़ा है कि केस-असंवेदनशील स्ट्रिंग तुलना करने के लिए ToUpper और ToLower का उपयोग करना नासमझी है, लेकिन जब LINQ-to-SQL की बात आती है तो मुझे कोई विकल्प नहीं दिखता। String.Compare की उपेक्षा Ignase और तुलना तर्क LINQ-to-SQL द्वारा अनदेखा कर रहे हैं (यदि आप केस-संवेदी डेटाबेस का उपयोग कर रहे हैं, तो आप केस-संवेदी तुलना प्राप्त करने के बावजूद केस-संवेदी तुलना प्राप्त करते हैं)। क्या यहां टोलवर या टौपर सबसे अच्छा विकल्प है? क्या यह दूसरे से बढ़िया है? मुझे लगा कि मैंने कहीं पढ़ा है कि ToUpper बेहतर था, लेकिन मुझे नहीं पता कि क्या यहां लागू होता है। (मैं बहुत सारे कोड समीक्षाएं कर रहा हूं और हर कोई ToLower का उपयोग कर रहा है।)
Dim s = From row In context.Table Where String.Compare(row.Name, "test", StringComparison.InvariantCultureIgnoreCase) = 0
यह एक SQL क्वेरी का अनुवाद करता है जो केवल पंक्ति की तुलना करती है। नाम "परीक्षण" के साथ आता है और केस-संवेदी डेटाबेस पर "टेस्ट" और "टेस्ट" वापस नहीं आएगा।
LINQQuery.Contains("VaLuE", StringComparer.CurrentCultureIgnoreCase)
औरLINQQuery.Except(new string[]{"A VaLUE","AnOTher VaLUE"}, StringComparer.CurrentCultureIgnoreCase)
। वाहू!