Is there a C# LINQ syntax for the Queryable.Select

2019-01-22 01:08发布

问题:

When writing a query using C# LINQ syntax, is there a way to use the Queryable.SelectMany method from the keyword syntax?

For

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

Using fluent methods I could query

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

Is there a query syntax akin to

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

回答1:

Yes, you just repeat the from ... in clause:

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


回答2:

You can use a Compound from Clause:

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


回答3:

Your query would be re-written as:

var tokens = from x in text
             from z in x.Split(' ')
             select z;

Here's a good page that has a couple of side-by-side examples of Lambda and Query syntax:

Select Many Operator Part 1 - Zeeshan Hirani