2010-01-27 7 views
8

मैं linq क्वेरी में श्रेणी चर के प्रकार को कैसे निर्दिष्ट करूं?मैं LINQ क्वेरी में श्रेणी चर के प्रकार को कैसे निर्दिष्ट करूं?

+4

अपने भविष्य के संदर्भ के लिए, इस खंड 7.15.2.2 "स्पष्ट सीमा वैरिएबल प्रकार" में प्रलेखित है। –

उत्तर

16

बस चर के साथ ही यह घोषणा:

var query = from string text in collection 
      where text.Length > 5 
      select text.ToUpper(); 

यह अनुवाद कर देगा करने के लिए:

var query = collection.Cast<string>() 
         .Where(text => text.Length > 5) 
         .Select(text => text.ToUpper()); 
+0

मैं स्ट्रिंग्स 'var numbers = new [] {"1", "2", "3", "4", "5"} के रूप में संग्रहीत एक संग्रह पर इसे आजमा रहा था, लेकिन यह LINQ क्वेरी 'संख्याएं। कैस्ट ()। जहां ((int i, int अनुक्रमणिका) => अनुक्रमणिका> 2 && i> 3); '' अवैध कैस्टएक्सप्शन 'फेंकता है। स्ट्रिंग "1" परिवर्तनीय होना चाहिए संख्यात्मक 1. क्या यह नहीं है? यदि यह काम नहीं कर रहा है तो यह कास्ट ऑपरेटर वास्तव में LINQ प्रश्नों में उपयोगी होगा? – RBT

+1

@ आरबीटी: नहीं, आप एक स्ट्रिंग से int में नहीं डाले जा सकते हैं। आप 'संख्याओं' से शुरू करना चाहते हैं। चयन करें (text => int.Parse (टेक्स्ट)) ताकि आपके पास काम करने के लिए 'IENumerable ' हो। 'कास्ट' ऑपरेटर उपयोगी है जहां सामान्य कोड में कास्ट उपयोगी होते हैं। –

संबंधित मुद्दे