Есть ли синтаксис 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(' ')

пример нуждается в некотором улучшении ... но я подозреваю, что он передает основную мысль. Не стесняйтесь предлагать лучшие примеры.
BrianCooksey

Ответы:


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.