Enumerable..::.Distinct<(Of <(TSource>)>) 方法 (IEnumerable<(Of <(TSource>)>))
更新:2007 年 11 月
通過使用預設的相等比較子對值進行比較返回序列中的非重複元素。
命名空間: System.Linq
程式集: System.Core(在 System.Core.dll 中)
文法
Visual Basic(聲明)
<ExtensionAttribute> _Public Shared Function Distinct(Of TSource) ( _ source As IEnumerable(Of TSource) _) As IEnumerable(Of TSource)
Visual Basic (用法)
Dim source As IEnumerable(Of TSource)Dim returnValue As IEnumerable(Of TSource)returnValue = source.Distinct()
C#
public static IEnumerable<TSource> Distinct<TSource>( this IEnumerable<TSource> source)
Visual C++
[ExtensionAttribute]public:generic<typename TSource>static IEnumerable<TSource>^ Distinct( IEnumerable<TSource>^ source)
J#
J# 支援使用泛型 API,但是不支援新泛型 API 的聲明。
JScript
JScript 不支援泛型型別或方法。
型別參數
-
TSource
-
source 中的元素的類型。
參數
-
source
-
類型:System.Collections.Generic..::.IEnumerable<(Of <(
TSource>)>)
要從中移除重複元素的序列。
傳回值
類型:System.Collections.Generic..::.IEnumerable<(Of <(TSource>)>)
一個 IEnumerable<(Of <(T>)>),包含源序列中的非重複元素。
使用說明
在 Visual Basic 和 C# 中,可以在 IEnumerable<(Of <(TSource>)>) 類型的任何對象上將此方法作為執行個體方法來調用。當使用執行個體方法文法調用此方法時,請省略第一個參數。有關更多資訊,請參見擴充方法 (Visual Basic)或擴充方法(C# 編程指南)。
異常
| 異常 |
條件 |
| ArgumentNullException |
source 為 nullNothingnullptrnull 引用(在 Visual Basic 中為 Nothing)。 |
備忘
此方法通過使用順延強制實現。即時傳回值為一個對象,該Object Storage Service執行操作所需的所有資訊。只有通過直接調用對象的 GetEnumerator 方法或使用 Visual C# 中的 foreach(或 Visual Basic 中的 For Each)來枚舉該對象時,才執行此方法表示的查詢。
Distinct<(Of <(TSource>)>)(IEnumerable<(Of <(TSource>)>)) 方法返回不包含重複值的無序序列。它使用預設的相等比較子 Default 對值進行比較。
在 Visual Basic 查詢運算式文法中,Distinct 子句轉換為 Distinct 的一個調用。
樣本
下面的程式碼範例示範如何使用 Distinct<(Of <(TSource>)>)(IEnumerable<(Of <(TSource>)>)) 返回序列中的非重複元素。
Visual Basic
複製代碼
' Create a list of integers.Dim ages As New List(Of Integer)(New Integer() _ {21, 46, 46, 55, 17, 21, 55, 55})' Select the unique numbers in the List.Dim distinctAges As IEnumerable(Of Integer) = ages.Distinct()Dim output As New System.Text.StringBuilder("Distinct ages:" & vbCrLf)For Each age As Integer In distinctAges output.AppendLine(age)Next' Display the output.MsgBox(output.ToString)' This code produces the following output:'' Distinct ages:' 21' 46' 55' 17
C#
複製代碼
List<int> ages = new List<int> { 21, 46, 46, 55, 17, 21, 55, 55 };IEnumerable<int> distinctAges = ages.Distinct();Console.WriteLine("Distinct ages:");foreach (int age in distinctAges){ Console.WriteLine(age);}/* This code produces the following output: Distinct ages: 21 46 55 17*/