Чи існує синтаксис C # LINQ для методу Queryable.SelectMany ()?


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

Так, ви просто повторюєте речення from ... in:

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

4
@BCooksey - Так ... тому що ви вибираєте з колекції, вкладеної всередину першого результату.
Джастін Нісснер,

3
Усі ці виклики можуть обслуговуватися SelectMany, який надзвичайно гнучкий, але компілятор вибиратиме між Select, SelectMany і навіть взагалі не трансформуватиметься, залежно від форми запиту
Sprague,


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.