LINQ元素操作符
除了DefaultIfEmpty,其餘八種標準查詢元素運算符從集合返回單個元素。
操作 | 描述 | C#查詢表達式語法 | VB查詢表達式語法 |
---|---|---|---|
ElementAt | 返回一個特定的索引中的一個元素存在於一個集合 | 不適用 | 不適用 |
ElementAtOrDefault | 相同於ElementAt,它也將返回默認值,特定索引超出範圍返回默認值 | 不適用 | 不適用 |
First | 檢索的集合或第一元件滿足特定的條件中的第一個元素 | 不適用 | 不適用 |
FirstOrDefault | 相同First除了返回一個默認值冇有存在這樣的元素 | 不適用 | 不適用 |
Last | 檢索最後一個出現在集合或最後一個元素的元素滿足特定條件 | 不適用 | 不適用 |
LastOrDefault | 相同Last除了返回一個默認值冇有存在任何這樣的元素 | 不適用 | 不適用 |
Single | 返回集合的唯一元素或唯一元素滿足一定條件 | 不適用 | 不適用 |
SingleOrDefault | 相同單除了它也返回一個默認值,如果冇有存在任何這樣的唯一元素 | 不適用 | 不適用 |
DefaultIfEmpty | 返回默認值,如果集合或列表為空或null | 不適用 | 不適用 |
ElementAt示例- Enumerable.ElementAt方法
C#
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Operators { class Program { static void Main(string[] args) { string[] names = { "Hartono, Tommy", "Adams, Terry", "Andersen, Henriette Thaulow", "Hedlund, Magnus", "Ito, Shu" }; Random random = new Random(DateTime.Now.Millisecond); string name = names.ElementAt(random.Next(0, names.Length)); Console.WriteLine("The name chosen at random is '{0}'.", name); Console.ReadLine(); } } }
VB
Module Module1 Sub Main() Dim names() As String = _ {"Hartono, Tommy", "Adams, Terry", "Andersen, Henriette Thaulow", "Hedlund, Magnus", "Ito, Shu"} Dim random As Random = New Random(DateTime.Now.Millisecond) Dim name As String = names.ElementAt(random.Next(0, names.Length)) MsgBox("The name chosen at random is " & name) End Sub End Module
當C#或VB的上述代碼被編譯和執行時,它產生了以下結果:
The name chosen at random is Ito, Shu
注: - 在這裡,上麵的輸出會動態變化和名稱會被隨機選擇。
First示例- Enumerable.First方法
C#
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Operators { class Program { static void Main(string[] args) { int[] numbers = { 9, 34, 65, 92, 87, 435, 3, 54, 83, 23, 87, 435, 67, 12, 19 }; int first = numbers.First(); Console.WriteLine(first); Console.ReadLine(); } } }
VB
Module Module1 Sub Main() Dim numbers() As Integer = _ {9, 34, 65, 92, 87, 435, 3, 54, 83, 23, 87, 435, 67, 12, 19} Dim first As Integer = numbers.First() MsgBox(first) End Sub End Module
當C#或VB的上述代碼被編譯和執行時,它產生了以下結果:
9
Last例子- Enumerable.Last方法
C#
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Operators { class Program { static void Main(string[] args) { int[] numbers = { 9, 34, 65, 92, 87, 435, 3, 54, 83, 23, 87, 435, 67, 12, 19 }; int last = numbers.Last(); Console.WriteLine(last); Console.ReadLine(); } } }
VB
Module Module1 Sub Main() Dim numbers() As Integer = _ {9, 34, 65, 92, 87, 435, 3, 54, 83, 23, 87, 435, 67, 12, 19} Dim last As Integer = numbers.Last() MsgBox(last) End Sub End Module
當C#或VB的上述代碼被編譯和執行時,它產生了以下結果:
19