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.