Operaciones de proyección en LINQ

La proyección es una operación en la que un objeto se transforma en una forma completamente nueva con solo propiedades específicas.

Operador Descripción Sintaxis de expresión de consulta de C # Sintaxis de expresión de consulta de VB
Seleccione El operador proyecta valores sobre la base de una función de transformación Seleccione Seleccione
Seleccionar muchos El operador proyecta las secuencias de valores que se basan en una función de transformación y las aplana en una sola secuencia. Usar múltiples cláusulas from Usar múltiples cláusulas From

Ejemplo de selección: expresión de consulta

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

Cuando el código anterior en C # o VB se compila y ejecuta, produce el siguiente resultado:

a
a
a
d

Ejemplo de SelectMany - Expresión de consulta

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

Cuando el código anterior en C # o VB se compila y ejecuta, produce el siguiente resultado:

an
apple
a
day
the
quick
brown
fox