Projection Operations in LINQ



Projection is an operation in which an object is transformed into an altogether new form with only specific properties.

Operator Description C# Query Expression Syntax VB Query Expression Syntax
Select The operator projects values on basis of a transform function select Select
SelectMany The operator project the sequences of values which are based on a transform function as well as flattens them into a single sequence Use multiple from clauses Use multiple From clauses

Example of Select - Query Expression

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

When the above code in C# or VB is compiled and executed, it produces the following result −

a
a
a
d

Example of SelectMany - Query Expression

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

When the above code in C# or VB is compiled and executed, it produces the following result −

an
apple
a
day
the
quick
brown
fox
linq_query_operators.htm
Advertisements