2012-09-18 3 views
13

LINQ या Lambda Expression का उपयोग करके मैं दो स्ट्रिंग के क्वेरी अंतराल को कैसे फ़िल्टर करूं?LINQ या लैम्ब्डा अभिव्यक्ति में तुलनात्मक तारों के लिए खंड के बराबर क्या है?

उदाहरण:

SELECT * FROM dbo.Country WHERE Name BETWEEN "Argentina" AND "Jamaica"; 
+1

आपके LINQ प्रदाता क्या हैं? – Jon

उत्तर

11

आप की कोशिश की है:

yourDataContext.Country.Where(c => c.Name >= "Argentina" && c.Name <= "Jamaica"); 
+5

ऐसा करने से, यह मुझे निम्न त्रुटि पूछता है: ऑपरेटर '<=' प्रकार 'स्ट्रिंग' और 'स्ट्रिंग' –

+12

के संचालन पर लागू नहीं किया जा सकता है आपको 'c.Name.CompareTo ("अर्जेंटीना")> = 0 && c.Name.CompareTo ("जमैका") <= 0', लेकिन मुझे यकीन नहीं है कि यह इकाई ढांचे के माध्यम से अनुवाद करता है या नहीं। – Rawling

+0

रॉयलिंग यह काम किया, सही धन्यवाद !! –

11

अपराधियों> = और < = स्ट्रिंग्स के लिए नहीं हैं। वे आपके लिए संकलन समय त्रुटि फेंक देंगे। आप इसके लिए तुलनात्मक रूप से

x.Name.CompareTo(Start) >= 0 && x.Name.CompareTo(End) <= 0 
संबंधित मुद्दे