क्या Queryable.SelectMany () विधि के लिए C # LINQ सिंटैक्स है?


88

C # LINQ सिंटैक्स का उपयोग करते हुए एक क्वेरी लिखते समय, क्या कीवर्ड सिंटैक्स से Queryable.SelectMany विधि का उपयोग करने का एक तरीका है?

के लिये

string[] text = { "Albert was here", 
                  "Burke slept late", 
                  "Connor is happy" };

धाराप्रवाह तरीकों का उपयोग करके मैं क्वेरी कर सकता था

var tokens = text.SelectMany(s => s.Split(' '));

क्या कोई क्वेरी सिंटैक्स है

var tokens = from x in text selectmany s.Split(' ')

उदाहरण में कुछ सुधार की आवश्यकता है ... लेकिन मुझे संदेह है कि यह मूल बिंदु को पार कर जाता है। बेहतर उदाहरण देने के लिए स्वतंत्र महसूस करें।
ब्रायनकॉसी

जवाबों:


126

हां, आप अभी से ... खंड में दोहरा रहे हैं:

var words = from str in text
            from word in str.Split(' ')
            select word;

4
@ लुसी - हाँ ... क्योंकि आप पहले परिणाम के अंदर नेस्टेड संग्रह से चयन कर रहे हैं।
जस्टिन निस्नेर

3
इन सभी कॉल्स को SelectMany द्वारा सेवित किया जा सकता है, जो बेहद लचीली है, लेकिन कंपाइलर सेलेक्ट, SelectMany और यहां तक ​​कि किसी भी प्रकार के परिवर्तन के बीच चयन नहीं करेगा, जो कि क्वेरी के रूप पर निर्भर करता है
Sprague


18

आपकी क्वेरी को फिर से लिखा जाएगा:

var tokens = from x in text
             from z in x.Split(' ')
             select z;

यहाँ एक अच्छा पृष्ठ है जिसमें लैम्ब्डा और क्वेरी सिंटैक्स के कुछ साइड-बाय-साइड उदाहरण हैं:

कई ऑपरेटर भाग 1 का चयन करें - जीशान हिरानी

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.