Có cú pháp C # LINQ cho phương thức Queryable.SelectMany () không?


88

Khi viết một truy vấn bằng cú pháp C # LINQ, có cách nào để sử dụng phương thức Queryable.SelectMany từ cú pháp từ khóa không?

Đối với

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

Sử dụng các phương pháp thông thạo mà tôi có thể truy vấn

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

Có một cú pháp truy vấn giống với

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

ví dụ cần một số cải tiến ... nhưng tôi nghi ngờ nó có điểm cơ bản. Vui lòng đề xuất các ví dụ tốt hơn.
BrianCooksey

Câu trả lời:


126

Có, bạn chỉ cần lặp lại mệnh đề from ... in:

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

4
@BCooksey - Có ... vì bạn đang chọn từ một bộ sưu tập được lồng vào bên trong kết quả đầu tiên.
Justin Niessner

3
Tất cả những cuộc gọi có thể được phục vụ bởi SelectMany, mà là cực kỳ linh hoạt, nhưng trình biên dịch sẽ lựa chọn giữa Select, SelectMany và thậm chí không có biến đổi chút nào, tùy thuộc vào hình thức truy vấn
Sprague


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.