Operazioni di proiezione in LINQ

La proiezione è un'operazione in cui un oggetto viene trasformato in una forma completamente nuova con solo proprietà specifiche.

Operatore Descrizione Sintassi delle espressioni di query C # Sintassi delle espressioni di query VB
Selezionare L'operatore proietta i valori sulla base di una funzione di trasformazione Selezionare Selezionare
Seleziona Molti L'operatore proietta le sequenze di valori che si basano su una funzione di trasformazione e le appiattisce in una singola sequenza Utilizza più clausole from Utilizza più clausole From

Esempio di selezione - Espressione di query

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

Quando il codice sopra in C # o VB viene compilato ed eseguito, produce il seguente risultato:

a
a
a
d

Esempio di SelectMany - Espressione di query

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

Quando il codice sopra in C # o VB viene compilato ed eseguito, produce il seguente risultato:

an
apple
a
day
the
quick
brown
fox