Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Enumerable.OrderBy<TSource, TKey>(IEnumerable<TSource>, Func<TSource, TKey>, IComparer<TKey>)

 

Data di pubblicazione: ottobre 2016

Ordina in senso crescente gli elementi di una sequenza utilizzando un operatore di confronto specificato.

Spazio dei nomi:   System.Linq
Assembly:  System.Core (in System.Core.dll)

public static IOrderedEnumerable<TSource> OrderBy<TSource, TKey>(
	this IEnumerable<TSource> source,
	Func<TSource, TKey> keySelector,
	IComparer<TKey> comparer
)

Parametri

source
Type: System.Collections.Generic.IEnumerable<TSource>

Sequenza di valori da ordinare.

keySelector
Type: System.Func<TSource, TKey>

Funzione per estrarre una chiave da un elemento.

comparer
Type: System.Collections.Generic.IComparer<TKey>

Oggetto IComparer<T> per confrontare le chiavi.

Valore restituito

Type: System.Linq.IOrderedEnumerable<TSource>

Un IOrderedEnumerable<TElement> i cui elementi sono ordinati in base a una chiave.

Parametri tipo

TSource

Tipo degli elementi di source.

TKey

Tipo della chiave restituita dall'oggetto keySelector.

Exception Condition
ArgumentNullException

source o keySelector è null.

Questo metodo viene implementato tramite esecuzione posticipata. Il valore restituito immediato è un oggetto che archivia tutte le informazioni necessarie per eseguire l'azione. La query rappresentata da questo metodo non viene eseguita finché l'oggetto viene enumerata chiamando il relativo GetEnumerator metodo direttamente o tramite foreach in Visual C# o For Each in Visual Basic.

Per ordinare una sequenza in base ai valori degli elementi stessi, specificare la funzione identity (x => x in Visual C# o Function(x) x in Visual Basic) per keySelector.

Vengono definiti due metodi per estendere il tipo IOrderedEnumerable<TElement>, ovvero il tipo restituito di questo metodo. Questi due metodi, vale a dire ThenBy e ThenByDescending, consentono di specificare i criteri di ordinamento aggiuntivi per ordinare una sequenza. ThenBy e ThenByDescending restituiscono inoltre un IOrderedEnumerable<TElement>, ovvero un numero qualsiasi di chiamate consecutive per ThenBy o ThenByDescending possibili.

System_CAPS_noteNota

Poiché IOrderedEnumerable<TElement> eredita da IEnumerable<T>, è possibile chiamare OrderBy o OrderByDescending ai risultati di una chiamata a OrderBy, OrderByDescending, ThenBy o ThenByDescending. Tale operazione introduce un nuovo ordinamento primario che ignora l'ordinamento definito in precedenza.

Se comparer è null, l'operatore di confronto Default viene utilizzato per confrontare le chiavi.

Questo metodo esegue un ordinamento stabile; ovvero, se le chiavi di due elementi sono uguali, l'ordine degli elementi viene mantenuto. Ordinamento instabile, invece, non mantiene l'ordine degli elementi che hanno la stessa chiave.

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 3.5
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: