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