LINQ投影操作 - 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