C#
 Computer >> コンピューター >  >> プログラミング >> C#

Linq C#のSelectとSelectManyの違いは何ですか?


Select演算子は、射影演算子カテゴリに属する​​すべてのソースSelectMany演算子に対して1つの結果値を生成します。これは、シーケンスの各要素をIEnumerableに投影し、結果のシーケンスを1つのシーケンスにフラット化するために使用されます。

class Demo{
   public string Name { get; set; }
   public List<string> Contents { get; set; }
   public static List<Demo>GetAllContents(){
      List<Demo> listContents = new List<Demo>{
         new Demo{
            Name = "Cap",
            Contents = new List<string> { "Nike", "Adidas" }
         },
         new Demo{
            Name = "Shoes",
            Contents = new List<string> { "Nike", "Puma", "Adidas" }
         },
      };
      return listContents;
   }
}
class Program{
   static void Main(){
      IEnumerable<List<string>> result = Demo.GetAllContents().Select(s => s.Contents);
      foreach (List<string> stringList in result){
         foreach (string str in stringList){
            Console.WriteLine(str);
         }
      }
      Console.WriteLine("---Select Many---")
      IEnumerable<string> resultSelectMany = Demo.GetAllContents().SelectMany(s => s.Contents);
      foreach (string str in resultSelectMany){
         Console.WriteLine(str);
      }
      Console.ReadKey();
   }
}

出力

Nike
Adidas
Nike
Puma
Adidas
---Select Many---
Nike
Adidas
Nike
Puma
Adidas

  1. DirectX11とDirectX12の違いは何ですか?

    DirectXは、マルチメディアコンテンツをレンダリングし、グラフィカルハードウェアと通信するためにソフトウェアによって使用されるAPIまたはアプリケーションプログラミングインターフェイスのコレクションです。 DirectXの主要コンポーネントAPIであるDirect3Dは、ソフトウェアとグラフィックスハードウェア間の通信を処理します。すべてのハードウェアが異なるため、関数と呼び出しの標準化されたライブラリを使用してグラフィックカードと通信すると、ゲーム開発がスピードアップします。これはハードウェアアブストラクションと呼ばれ、APIの主な仕事です。 車について考えてみましょう。1台の車を運転

  2. C#のリストと配列の違いは何ですか?

    配列は同じタイプの要素の固定サイズのシーケンシャルコレクションを格納しますが、リストはジェネリックコレクションです。 リストを定義するには- List<string7gt; myList = new List<string>(); リストに要素を設定するには、Addメソッド-を使用する必要があります myList.Add("Audi"); myList.Add("BMW"); myList.Add("Chevrolet"); myList.Add("Hyundai"); 配列を定義するには-