Opérations de projection dans LINQ

La projection est une opération dans laquelle un objet est transformé en une forme totalement nouvelle avec seulement des propriétés spécifiques.

Opérateur La description Syntaxe de l'expression de requête C # Syntaxe d'expression de requête VB
Sélectionner L'opérateur projette des valeurs sur la base d'une fonction de transformation sélectionner Sélectionner
SélectionnezBeaucoup L'opérateur projette les séquences de valeurs basées sur une fonction de transformation et les aplatit en une seule séquence Utiliser plusieurs clauses from Utiliser plusieurs clauses From

Exemple de sélection - Expression de requête

C #

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Operators {
   class Program {
      static void Main(string[] args) {
      
         List<string> words = new List<string>() { "an", "apple", "a", "day" };

         var query = from word in words select word.Substring(0, 1);

         foreach (string s in query)
            Console.WriteLine(s);
            Console.ReadLine();
      }
   }
}

VB

Module Module1

   Sub Main()
   
      Dim words = New List(Of String) From {"an", "apple", "a", "day"}

      Dim query = From word In words Select word.Substring(0, 1);

      Dim sb As New System.Text.StringBuilder()
	  
      For Each letter As String In query
         sb.AppendLine(letter)
         Console.WriteLine(letter)
      Next
         Console.ReadLine()
		 
   End Sub
   
End Module

Lorsque le code ci-dessus en C # ou VB est compilé et exécuté, il produit le résultat suivant -

a
a
a
d

Exemple de SelectMany - Expression de requête

C #

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Operators {
   class Program {
      static void Main(string[] args) {
      
         List<string> phrases = new List<string>() { "an apple a day", "the quick brown fox" };

         var query = from phrase in phrases
                     from word in phrase.Split(' ')
                     select word;

         foreach (string s in query)
            Console.WriteLine(s);
            Console.ReadLine();
      }
   }
}

VB

Module Module1

   Sub Main()
   
      Dim phrases = New List(Of String) From {"an apple a day", "the quick brown fox"}

      Dim query = From phrase In phrases 
                  From word In phrase.Split(" "c) 
                  Select word;

      Dim sb As New System.Text.StringBuilder()
	  
      For Each str As String In query
         sb.AppendLine(str)
         Console.WriteLine(str)
      Next 
         Console.ReadLine()
		 
   End Sub
   
End Module

Lorsque le code ci-dessus en C # ou VB est compilé et exécuté, il produit le résultat suivant -

an
apple
a
day
the
quick
brown
fox