Queryable.SelectMany()方法有C#LINQ语法吗?


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(' ')

该示例需要一些改进...但是我怀疑它可以理解基本点。随时提出更好的例子。
2011年

Answers:


126

是的,您只需重复from ... in子句:

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

4
@BCooksey-是的,因为您要从嵌套在第一个结果内的集合中进行选择。
贾斯汀·尼森纳

3
所有这些调用都可以由SelectMany提供服务,它非常灵活,但是编译器将在Select,SelectMany甚至根本不进行转换之间进行选择,具体取决于查询的形式
Sprague


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.