Apakah ada sintaks C # LINQ untuk metode Querizable.SelectMany ()?


88

Saat menulis kueri menggunakan sintaks C # LINQ, apakah ada cara untuk menggunakan metode Querizable.SelectMany dari sintaks kata kunci?

Untuk

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

Dengan menggunakan metode fasih saya bisa bertanya

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

Apakah ada sintaks kueri yang mirip dengan

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

contoh ini perlu beberapa perbaikan ... tapi saya curiga itu menjelaskan maksud dasarnya. Jangan ragu untuk menyarankan contoh yang lebih baik.
BrianCooksey

Jawaban:


126

Ya, ulangi saja dari ... pada klausa:

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

4
@BCooksey - Ya ... karena Anda memilih dari koleksi bersarang di dalam hasil pertama.
Justin Niessner

3
Semua panggilan ini dapat dilayani oleh SelectMany, yang sangat fleksibel, tetapi compiler akan memilih antara Select, SelectMany dan bahkan tidak ada transformasi sama sekali, tergantung pada bentuk kueri
Sprague


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.