Queryable.SelectMany () yöntemi için bir C # LINQ sözdizimi var mı?


88

C # LINQ sözdizimini kullanarak bir sorgu yazarken, anahtar kelime sözdiziminden Queryable.SelectMany yöntemini kullanmanın bir yolu var mı?

İçin

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

Akıcı yöntemler kullanarak sorgulayabilirim

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

Benzer bir sorgu sözdizimi var mı

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

örneğin biraz iyileştirmeye ihtiyacı var ... ama temel noktayı aldığından şüpheleniyorum. Daha iyi örnekler önermekten çekinmeyin.
— BrianCooksey

Yanıtlar:


126

Evet, sadece from ... in maddesini tekrarlıyorsunuz:

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

4
@BCooksey - Evet ... çünkü ilk sonucun içine yerleştirilmiş bir koleksiyondan seçim yapıyorsunuz.
— Justin Niessner

3
Tüm bu çağrılara son derece esnek olan SelectMany tarafından hizmet verilebilir, ancak derleyici, sorgunun biçimine bağlı olarak Select, SelectMany ve hatta hiç dönüştürme arasında seçim yapacaktır
— Sprague


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.