linq to sql:Select
SelectMany
を理解します
とSelect
の重要な違いを理解する必要があります。両方のプロジェクトデータですが、それらのアプローチは大きく異なります
SelectMany
Select
、一連のシーケンスを単一のシーケンスに平らにします。これは、階層またはネストされたデータ構造を操作する場合に非常に貴重です。複数のレベルを通過して、基礎となる要素にアクセスできます。
オブジェクトのコレクションを含むSelectMany
クラスで説明しましょう:
Person
PhoneNumber
<code class="language-csharp">public class PhoneNumber { public string Number { get; set; } } public class Person { public IEnumerable<PhoneNumber> PhoneNumbers { get; set; } public string Name { get; set; } }</code>
Select
これにより、を使用して、一連の電話番号シーケンスを取得します。 結果はネストされたままです。
<code class="language-csharp">IEnumerable<IEnumerable<PhoneNumber>> phoneLists = people.Select(p => p.PhoneNumbers);</code>
Select
例:
SelectMany
ネストされた構造を平らにし、すべての人からのすべての電話番号を含む単一のシーケンスを生成します。
<code class="language-csharp">IEnumerable<PhoneNumber> phoneNumbers = people.SelectMany(p => p.PhoneNumbers);</code>
:SelectMany
の強力な機能は、親データを投影に組み込む能力です。 2番目のパラメーターで過負荷を使用すると、親と子の特性を組み合わせた新しいオブジェクトを作成できます。
SelectMany
これにより、各個人の名前と関連する電話番号をリストするディレクトリが生成されます。 出力は、クラスと
以上がLINQのSelectManyオペレーターとSelectmanyオペレーターの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。