ホームページ > バックエンド開発 > C++ > LINQのSelectManyオペレーターとSelectmanyオペレーターの違いは何ですか?

LINQのSelectManyオペレーターとSelectmanyオペレーターの違いは何ですか?

Susan Sarandon
リリース: 2025-01-28 17:51:10
オリジナル
988 人が閲覧しました

What's the Difference Between LINQ's Select and SelectMany Operators?

linq to sql:SelectSelectManyを理解します

linqをsqlに習得するには、

Selectの重要な違いを理解する必要があります。両方のプロジェクトデータですが、それらのアプローチは大きく異なります SelectMany

1対1の変換を実行します。 入力シーケンスから各要素を取得し、関数を適用して出力シーケンスに新しい要素を生成します。 これは、特定のプロパティを抽出したり、個々のアイテムで計算を実行したりするのに最適です。 一方、

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート