5 ms·
from word in text.Split(' ') group word by word into g let count = g.Count() orderby count descending select g.Key Under the covers when it i
by cmircea 13y ago
from word in text.Split(' ')
group word by word into g
let count = g.Count()
orderby count descending
select g.Key
Under the covers when it is compiled it's turned into a select. That way it it only does N counts, not potentially N log N (for each comparison in the orderby), where N is the number of items you enumerate (so if you .Take() just 10 it doesn't really matter).