LINQ投影操作
投影是在其中一個對象被變換成僅特定性能一種全新的形式的操作。
運算符 | 描述 | C#查詢表達式語法 | VB查詢表達式語法 |
---|---|---|---|
Select | 操作轉換函數的基礎項目值 | select | Select |
SelectMany | 操作項目的值是根據上的轉換函數,以及拚合成一個單一的序列的序列 | 使用多個from子句 | 使用多個from子句 |
Select的例子- 查詢表達式
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
當在C#或VB上麵的代碼被編譯和執行時,它產生以下結果:
a a a d
SelectMany例子- 查詢表達式
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
當在C#或VB上麵的代碼被編譯和執行時,它產生了以下結果:
an apple a day the quick brown fox