Enumerable.Max Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Restituisce il valore massimo in una sequenza di valori.
Overload
| Nome | Descrizione |
|---|---|
| Max(IEnumerable<Nullable<Single>>) |
Restituisce il valore massimo in una sequenza di valori nullable Single . |
| Max(IEnumerable<Int32>) |
Restituisce il valore massimo in una sequenza di Int32 valori. |
| Max(IEnumerable<Nullable<Int64>>) |
Restituisce il valore massimo in una sequenza di valori nullable Int64 . |
| Max(IEnumerable<Single>) |
Restituisce il valore massimo in una sequenza di Single valori. |
| Max(IEnumerable<Nullable<Int32>>) |
Restituisce il valore massimo in una sequenza di valori nullable Int32 . |
| Max(IEnumerable<Decimal>) |
Restituisce il valore massimo in una sequenza di Decimal valori. |
| Max(IEnumerable<Nullable<Decimal>>) |
Restituisce il valore massimo in una sequenza di valori nullable Decimal . |
| Max(IEnumerable<Int64>) |
Restituisce il valore massimo in una sequenza di Int64 valori. |
| Max(IEnumerable<Double>) |
Restituisce il valore massimo in una sequenza di Double valori. |
| Max(IEnumerable<Nullable<Double>>) |
Restituisce il valore massimo in una sequenza di valori nullable Double . |
| Max<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza generica e restituisce il valore massimo risultante. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo Single. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo nullable Single. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo nullable Int64. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo nullable Int32. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo nullable Double. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo Int64. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo Int32. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo Double. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo Decimal. |
| Max<TSource>(IEnumerable<TSource>) |
Restituisce il valore massimo in una sequenza generica. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo nullable Decimal. |
Max(IEnumerable<Nullable<Single>>)
Restituisce il valore massimo in una sequenza di valori nullable Single .
public:
[System::Runtime::CompilerServices::Extension]
static Nullable<float> Max(System::Collections::Generic::IEnumerable<Nullable<float>> ^ source);
public static float? Max(this System.Collections.Generic.IEnumerable<float?> source);
static member Max : seq<Nullable<single>> -> Nullable<single>
<Extension()>
Public Function Max (source As IEnumerable(Of Nullable(Of Single))) As Nullable(Of Single)
Parametri
- source
- IEnumerable<Nullable<Single>>
Sequenza di valori nullable Single per determinare il valore massimo di .
Valori restituiti
Valore di tipo Nullable<Single> in C# o Nullable(Of Single) in Visual Basic che corrisponde al valore massimo nella sequenza.
Eccezioni
source è null.
Commenti
Il Max(IEnumerable<Nullable<Single>>) metodo usa l'implementazione Single di IComparable<T> per confrontare i valori.
Se la sequenza di origine è vuota o contiene solo valori , nullquesta funzione restituisce null.
Nella sintassi dell'espressione di query Visual Basic una clausola Aggregate Into Max() viene convertita in una chiamata di Max.
Vedi anche
- Clausola Aggregate (Visual Basic)
Si applica a
Max(IEnumerable<Int32>)
Restituisce il valore massimo in una sequenza di Int32 valori.
public:
[System::Runtime::CompilerServices::Extension]
static int Max(System::Collections::Generic::IEnumerable<int> ^ source);
public static int Max(this System.Collections.Generic.IEnumerable<int> source);
static member Max : seq<int> -> int
<Extension()>
Public Function Max (source As IEnumerable(Of Integer)) As Integer
Parametri
- source
- IEnumerable<Int32>
Sequenza di Int32 valori per determinare il valore massimo di .
Valori restituiti
Valore massimo nella sequenza.
Eccezioni
source è null.
source non contiene elementi.
Commenti
Il Max(IEnumerable<Int32>) metodo usa l'implementazione Int32 di IComparable<T> per confrontare i valori.
Nella sintassi dell'espressione di query Visual Basic una clausola Aggregate Into Max() viene convertita in una chiamata di Max.
Vedi anche
- Clausola Aggregate (Visual Basic)
Si applica a
Max(IEnumerable<Nullable<Int64>>)
Restituisce il valore massimo in una sequenza di valori nullable Int64 .
public:
[System::Runtime::CompilerServices::Extension]
static Nullable<long> Max(System::Collections::Generic::IEnumerable<Nullable<long>> ^ source);
public static long? Max(this System.Collections.Generic.IEnumerable<long?> source);
static member Max : seq<Nullable<int64>> -> Nullable<int64>
<Extension()>
Public Function Max (source As IEnumerable(Of Nullable(Of Long))) As Nullable(Of Long)
Parametri
- source
- IEnumerable<Nullable<Int64>>
Sequenza di valori nullable Int64 per determinare il valore massimo di .
Valori restituiti
Valore di tipo Nullable<Int64> in C# o Nullable(Of Int64) in Visual Basic che corrisponde al valore massimo nella sequenza.
Eccezioni
source è null.
Commenti
Il Max(IEnumerable<Nullable<Int64>>) metodo usa l'implementazione Int64 di IComparable<T> per confrontare i valori.
Se la sequenza di origine è vuota o contiene solo valori , nullquesta funzione restituisce null.
Nella sintassi dell'espressione di query Visual Basic una clausola Aggregate Into Max() viene convertita in una chiamata di Max.
Vedi anche
- Clausola Aggregate (Visual Basic)
Si applica a
Max(IEnumerable<Single>)
Restituisce il valore massimo in una sequenza di Single valori.
public:
[System::Runtime::CompilerServices::Extension]
static float Max(System::Collections::Generic::IEnumerable<float> ^ source);
public static float Max(this System.Collections.Generic.IEnumerable<float> source);
static member Max : seq<single> -> single
<Extension()>
Public Function Max (source As IEnumerable(Of Single)) As Single
Parametri
- source
- IEnumerable<Single>
Sequenza di Single valori per determinare il valore massimo di .
Valori restituiti
Valore massimo nella sequenza.
Eccezioni
source è null.
source non contiene elementi.
Commenti
Il Max(IEnumerable<Single>) metodo usa l'implementazione Single di IComparable<T> per confrontare i valori.
Nella sintassi dell'espressione di query Visual Basic una clausola Aggregate Into Max() viene convertita in una chiamata di Max.
Vedi anche
- Clausola Aggregate (Visual Basic)
Si applica a
Max(IEnumerable<Nullable<Int32>>)
Restituisce il valore massimo in una sequenza di valori nullable Int32 .
public:
[System::Runtime::CompilerServices::Extension]
static Nullable<int> Max(System::Collections::Generic::IEnumerable<Nullable<int>> ^ source);
public static int? Max(this System.Collections.Generic.IEnumerable<int?> source);
static member Max : seq<Nullable<int>> -> Nullable<int>
<Extension()>
Public Function Max (source As IEnumerable(Of Nullable(Of Integer))) As Nullable(Of Integer)
Parametri
- source
- IEnumerable<Nullable<Int32>>
Sequenza di valori nullable Int32 per determinare il valore massimo di .
Valori restituiti
Valore di tipo Nullable<Int32> in C# o Nullable(Of Int32) in Visual Basic che corrisponde al valore massimo nella sequenza.
Eccezioni
source è null.
Commenti
Il Max(IEnumerable<Nullable<Int32>>) metodo usa l'implementazione Int32 di IComparable<T> per confrontare i valori.
Se la sequenza di origine è vuota o contiene solo valori , nullquesta funzione restituisce null.
Nella sintassi dell'espressione di query Visual Basic una clausola Aggregate Into Max() viene convertita in una chiamata di Max.
Vedi anche
- Clausola Aggregate (Visual Basic)
Si applica a
Max(IEnumerable<Decimal>)
Restituisce il valore massimo in una sequenza di Decimal valori.
public:
[System::Runtime::CompilerServices::Extension]
static System::Decimal Max(System::Collections::Generic::IEnumerable<System::Decimal> ^ source);
public static decimal Max(this System.Collections.Generic.IEnumerable<decimal> source);
static member Max : seq<decimal> -> decimal
<Extension()>
Public Function Max (source As IEnumerable(Of Decimal)) As Decimal
Parametri
- source
- IEnumerable<Decimal>
Sequenza di Decimal valori per determinare il valore massimo di .
Valori restituiti
Valore massimo nella sequenza.
Eccezioni
source è null.
source non contiene elementi.
Commenti
Il Max(IEnumerable<Decimal>) metodo usa l'implementazione Decimal di IComparable<T> per confrontare i valori.
Nella sintassi dell'espressione di query Visual Basic una clausola Aggregate Into Max() viene convertita in una chiamata di Max.
Vedi anche
- Clausola Aggregate (Visual Basic)
Si applica a
Max(IEnumerable<Nullable<Decimal>>)
Restituisce il valore massimo in una sequenza di valori nullable Decimal .
public:
[System::Runtime::CompilerServices::Extension]
static Nullable<System::Decimal> Max(System::Collections::Generic::IEnumerable<Nullable<System::Decimal>> ^ source);
public static decimal? Max(this System.Collections.Generic.IEnumerable<decimal?> source);
static member Max : seq<Nullable<decimal>> -> Nullable<decimal>
<Extension()>
Public Function Max (source As IEnumerable(Of Nullable(Of Decimal))) As Nullable(Of Decimal)
Parametri
- source
- IEnumerable<Nullable<Decimal>>
Sequenza di valori nullable Decimal per determinare il valore massimo di .
Valori restituiti
Valore di tipo Nullable<Decimal> in C# o Nullable(Of Decimal) in Visual Basic che corrisponde al valore massimo nella sequenza.
Eccezioni
source è null.
Commenti
Il Max(IEnumerable<Nullable<Decimal>>) metodo usa l'implementazione Decimal di IComparable<T> per confrontare i valori.
Se la sequenza di origine è vuota o contiene solo valori , nullquesta funzione restituisce null.
Nella sintassi dell'espressione di query Visual Basic una clausola Aggregate Into Max() viene convertita in una chiamata di Max.
Vedi anche
- Clausola Aggregate (Visual Basic)
Si applica a
Max(IEnumerable<Int64>)
Restituisce il valore massimo in una sequenza di Int64 valori.
public:
[System::Runtime::CompilerServices::Extension]
static long Max(System::Collections::Generic::IEnumerable<long> ^ source);
public static long Max(this System.Collections.Generic.IEnumerable<long> source);
static member Max : seq<int64> -> int64
<Extension()>
Public Function Max (source As IEnumerable(Of Long)) As Long
Parametri
- source
- IEnumerable<Int64>
Sequenza di Int64 valori per determinare il valore massimo di .
Valori restituiti
Valore massimo nella sequenza.
Eccezioni
source è null.
source non contiene elementi.
Esempio
Nell'esempio di codice seguente viene illustrato come usare Max(IEnumerable<Int64>) per determinare il valore massimo in una sequenza.
List<long> longs = new List<long> { 4294967296L, 466855135L, 81125L };
long max = longs.Max();
Console.WriteLine("The largest number is {0}.", max);
/*
This code produces the following output:
The largest number is 4294967296.
*/
' Create a list of Long values.
Dim longs As New List(Of Long)(New Long() _
{4294967296L, 466855135L, 81125L})
' Get the maximum value in the list.
Dim max As Long = longs.Max()
' Display the result.
Console.WriteLine($"The largest number is {max}")
' This code produces the following output:
'
' The largest number is 4294967296
Commenti
Il Max(IEnumerable<Int64>) metodo usa l'implementazione Int64 di IComparable<T> per confrontare i valori.
Nella sintassi dell'espressione di query Visual Basic una clausola Aggregate Into Max() viene convertita in una chiamata di Max.
Vedi anche
- Clausola Aggregate (Visual Basic)
Si applica a
Max(IEnumerable<Double>)
Restituisce il valore massimo in una sequenza di Double valori.
public:
[System::Runtime::CompilerServices::Extension]
static double Max(System::Collections::Generic::IEnumerable<double> ^ source);
public static double Max(this System.Collections.Generic.IEnumerable<double> source);
static member Max : seq<double> -> double
<Extension()>
Public Function Max (source As IEnumerable(Of Double)) As Double
Parametri
- source
- IEnumerable<Double>
Sequenza di Double valori per determinare il valore massimo di .
Valori restituiti
Valore massimo nella sequenza.
Eccezioni
source è null.
source non contiene elementi.
Commenti
Il Max(IEnumerable<Double>) metodo usa l'implementazione Double di IComparable<T> per confrontare i valori.
Nella sintassi dell'espressione di query Visual Basic una clausola Aggregate Into Max() viene convertita in una chiamata di Max.
Vedi anche
- Clausola Aggregate (Visual Basic)
Si applica a
Max(IEnumerable<Nullable<Double>>)
Restituisce il valore massimo in una sequenza di valori nullable Double .
public:
[System::Runtime::CompilerServices::Extension]
static Nullable<double> Max(System::Collections::Generic::IEnumerable<Nullable<double>> ^ source);
public static double? Max(this System.Collections.Generic.IEnumerable<double?> source);
static member Max : seq<Nullable<double>> -> Nullable<double>
<Extension()>
Public Function Max (source As IEnumerable(Of Nullable(Of Double))) As Nullable(Of Double)
Parametri
- source
- IEnumerable<Nullable<Double>>
Sequenza di valori nullable Double per determinare il valore massimo di .
Valori restituiti
Valore di tipo Nullable<Double> in C# o Nullable(Of Double) in Visual Basic che corrisponde al valore massimo nella sequenza.
Eccezioni
source è null.
Esempio
Nell'esempio di codice seguente viene illustrato come usare Max(IEnumerable<Nullable<Double>>) per determinare il valore massimo in una sequenza.
double?[] doubles = { null, 1.5E+104, 9E+103, -2E+103 };
double? max = doubles.Max();
Console.WriteLine("The largest number is {0}.", max);
/*
This code produces the following output:
The largest number is 1.5E+104.
*/
' Create an array of Nullable Double values.
Dim doubles() As Nullable(Of Double) =
{Nothing, 1.5E+104, 9.0E+103, -2.0E+103}
' Determine the maximum value in the array.
Dim max As Nullable(Of Double) = doubles.Max()
' Display the result.
Console.WriteLine($"The largest number is {max}")
' This code produces the following output:
'
' The largest number is 1.5E+104
Commenti
Il Max(IEnumerable<Nullable<Double>>) metodo usa l'implementazione Double di IComparable<T> per confrontare i valori.
Se la sequenza di origine è vuota o contiene solo valori , nullquesta funzione restituisce null.
Nella sintassi dell'espressione di query Visual Basic una clausola Aggregate Into Max() viene convertita in una chiamata di Max.
Vedi anche
- Clausola Aggregate (Visual Basic)
Si applica a
Max<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)
Richiama una funzione di trasformazione su ogni elemento di una sequenza generica e restituisce il valore massimo risultante.
public:
generic <typename TSource, typename TResult>
[System::Runtime::CompilerServices::Extension]
static TResult Max(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, TResult> ^ selector);
public static TResult Max<TSource,TResult>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TResult> selector);
static member Max : seq<'Source> * Func<'Source, 'Result> -> 'Result
<Extension()>
Public Function Max(Of TSource, TResult) (source As IEnumerable(Of TSource), selector As Func(Of TSource, TResult)) As TResult
Parametri di tipo
- TSource
Tipo degli elementi di source.
- TResult
Tipo del valore restituito da selector.
Parametri
- source
- IEnumerable<TSource>
Sequenza di valori per determinare il valore massimo di .
- selector
- Func<TSource,TResult>
Funzione di trasformazione da applicare a ogni elemento.
Valori restituiti
Valore massimo nella sequenza.
Eccezioni
source o selector è null.
Esempio
Nell'esempio di codice seguente viene illustrato come usare Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) per determinare il valore massimo in una sequenza di valori proiettati.
Annotazioni
Questo esempio di codice usa un overload del metodo diverso dall'overload specifico descritto in questo articolo. Per estendere l'esempio all'overload descritto in questo articolo, modificare il corpo della selector funzione.
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void MaxEx4()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
int max = pets.Max(pet => pet.Age + pet.Name.Length);
Console.WriteLine(
"The maximum pet age plus name length is {0}.",
max);
}
/*
This code produces the following output:
The maximum pet age plus name length is 14.
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub MaxEx4()
' Create an array of Pet objects.
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}}
' Determine the "maximum" pet by passing a
' lambda expression to Max() that sums the pet's age
' and name length.
Dim max As Integer = pets.Max(Function(pet) _
pet.Age + pet.Name.Length)
' Display the result.
Console.WriteLine($"The maximum pet age plus name length is {max}")
End Sub
' This code produces the following output:
'
' The maximum pet age plus name length is 14
Commenti
Se il tipo TResult implementa IComparable<T>, questo metodo usa tale implementazione per confrontare i valori. In caso contrario, se il tipo TResult implementa IComparable, tale implementazione viene usata per confrontare i valori.
Nella sintassi dell'espressione di query Visual Basic una clausola Aggregate Into Max() viene convertita in una chiamata di Max.
Vedi anche
- System.Linq.Enumerable.MaxBy
- Clausola Aggregate (Visual Basic)
Si applica a
Max<TSource>(IEnumerable<TSource>, Func<TSource,Single>)
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo Single.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static float Max(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, float> ^ selector);
public static float Max<TSource>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,float> selector);
static member Max : seq<'Source> * Func<'Source, single> -> single
<Extension()>
Public Function Max(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Single)) As Single
Parametri di tipo
- TSource
Tipo degli elementi di source.
Parametri
- source
- IEnumerable<TSource>
Sequenza di valori per determinare il valore massimo di .
Valori restituiti
Valore massimo nella sequenza.
Eccezioni
source o selector è null.
source non contiene elementi.
Esempio
Nell'esempio di codice seguente viene illustrato come usare Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) per determinare il valore massimo in una sequenza di valori proiettati.
Annotazioni
Questo esempio di codice usa un overload del metodo diverso dall'overload specifico descritto in questo articolo. Per estendere l'esempio all'overload descritto in questo articolo, modificare il corpo della selector funzione.
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void MaxEx4()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
int max = pets.Max(pet => pet.Age + pet.Name.Length);
Console.WriteLine(
"The maximum pet age plus name length is {0}.",
max);
}
/*
This code produces the following output:
The maximum pet age plus name length is 14.
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub MaxEx4()
' Create an array of Pet objects.
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}}
' Determine the "maximum" pet by passing a
' lambda expression to Max() that sums the pet's age
' and name length.
Dim max As Integer = pets.Max(Function(pet) _
pet.Age + pet.Name.Length)
' Display the result.
Console.WriteLine($"The maximum pet age plus name length is {max}")
End Sub
' This code produces the following output:
'
' The maximum pet age plus name length is 14
Commenti
Il Max<TSource>(IEnumerable<TSource>, Func<TSource,Single>) metodo usa l'implementazione Single di IComparable<T> per confrontare i valori.
È possibile applicare questo metodo a una sequenza di valori arbitrari se si specifica una funzione , selector, che proietta i membri di source in un tipo numerico, in particolare Single.
Nella sintassi dell'espressione di query Visual Basic una clausola Aggregate Into Max() viene convertita in una chiamata di Max.
Vedi anche
- Clausola Aggregate (Visual Basic)
Si applica a
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo nullable Single.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static Nullable<float> Max(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, Nullable<float>> ^ selector);
public static float? Max<TSource>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,float?> selector);
static member Max : seq<'Source> * Func<'Source, Nullable<single>> -> Nullable<single>
<Extension()>
Public Function Max(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Nullable(Of Single))) As Nullable(Of Single)
Parametri di tipo
- TSource
Tipo degli elementi di source.
Parametri
- source
- IEnumerable<TSource>
Sequenza di valori per determinare il valore massimo di .
Valori restituiti
Valore che corrisponde al valore massimo nella sequenza.
Eccezioni
source o selector è null.
Esempio
Nell'esempio di codice seguente viene illustrato come usare Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) per determinare il valore massimo in una sequenza di valori proiettati.
Annotazioni
Questo esempio di codice usa un overload del metodo diverso dall'overload specifico descritto in questo articolo. Per estendere l'esempio all'overload descritto in questo articolo, modificare il corpo della selector funzione.
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void MaxEx4()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
int max = pets.Max(pet => pet.Age + pet.Name.Length);
Console.WriteLine(
"The maximum pet age plus name length is {0}.",
max);
}
/*
This code produces the following output:
The maximum pet age plus name length is 14.
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub MaxEx4()
' Create an array of Pet objects.
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}}
' Determine the "maximum" pet by passing a
' lambda expression to Max() that sums the pet's age
' and name length.
Dim max As Integer = pets.Max(Function(pet) _
pet.Age + pet.Name.Length)
' Display the result.
Console.WriteLine($"The maximum pet age plus name length is {max}")
End Sub
' This code produces the following output:
'
' The maximum pet age plus name length is 14
Commenti
Il Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) metodo usa l'implementazione Single di IComparable<T> per confrontare i valori.
È possibile applicare questo metodo a una sequenza di valori arbitrari se si specifica una funzione, selector, che proietta i membri di source in un tipo numerico, in particolare Nullable<Single> in C# o Nullable(Of Single) in Visual Basic.
Nella sintassi dell'espressione di query Visual Basic una clausola Aggregate Into Max() viene convertita in una chiamata di Max.
Vedi anche
- Clausola Aggregate (Visual Basic)
Si applica a
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo nullable Int64.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static Nullable<long> Max(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, Nullable<long>> ^ selector);
public static long? Max<TSource>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,long?> selector);
static member Max : seq<'Source> * Func<'Source, Nullable<int64>> -> Nullable<int64>
<Extension()>
Public Function Max(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Nullable(Of Long))) As Nullable(Of Long)
Parametri di tipo
- TSource
Tipo degli elementi di source.
Parametri
- source
- IEnumerable<TSource>
Sequenza di valori per determinare il valore massimo di .
Valori restituiti
Valore che corrisponde al valore massimo nella sequenza.
Eccezioni
source o selector è null.
Esempio
Nell'esempio di codice seguente viene illustrato come usare Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) per determinare il valore massimo in una sequenza di valori proiettati.
Annotazioni
Questo esempio di codice usa un overload del metodo diverso dall'overload specifico descritto in questo articolo. Per estendere l'esempio all'overload descritto in questo articolo, modificare il corpo della selector funzione.
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void MaxEx4()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
int max = pets.Max(pet => pet.Age + pet.Name.Length);
Console.WriteLine(
"The maximum pet age plus name length is {0}.",
max);
}
/*
This code produces the following output:
The maximum pet age plus name length is 14.
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub MaxEx4()
' Create an array of Pet objects.
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}}
' Determine the "maximum" pet by passing a
' lambda expression to Max() that sums the pet's age
' and name length.
Dim max As Integer = pets.Max(Function(pet) _
pet.Age + pet.Name.Length)
' Display the result.
Console.WriteLine($"The maximum pet age plus name length is {max}")
End Sub
' This code produces the following output:
'
' The maximum pet age plus name length is 14
Commenti
Il Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) metodo usa l'implementazione Int64 di IComparable<T> per confrontare i valori.
È possibile applicare questo metodo a una sequenza di valori arbitrari se si specifica una funzione, selector, che proietta i membri di source in un tipo numerico, in particolare Nullable<Int64> in C# o Nullable(Of Int64) in Visual Basic.
Nella sintassi dell'espressione di query Visual Basic una clausola Aggregate Into Max() viene convertita in una chiamata di Max.
Vedi anche
- Clausola Aggregate (Visual Basic)
Si applica a
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo nullable Int32.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static Nullable<int> Max(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, Nullable<int>> ^ selector);
public static int? Max<TSource>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int?> selector);
static member Max : seq<'Source> * Func<'Source, Nullable<int>> -> Nullable<int>
<Extension()>
Public Function Max(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Nullable(Of Integer))) As Nullable(Of Integer)
Parametri di tipo
- TSource
Tipo degli elementi di source.
Parametri
- source
- IEnumerable<TSource>
Sequenza di valori per determinare il valore massimo di .
Valori restituiti
Valore di tipo Nullable<Int32> in C# o Nullable(Of Int32) in Visual Basic che corrisponde al valore massimo nella sequenza.
Eccezioni
source o selector è null.
Esempio
Nell'esempio di codice seguente viene illustrato come usare Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) per determinare il valore massimo in una sequenza di valori proiettati.
Annotazioni
Questo esempio di codice usa un overload del metodo diverso dall'overload specifico descritto in questo articolo. Per estendere l'esempio all'overload descritto in questo articolo, modificare il corpo della selector funzione.
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void MaxEx4()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
int max = pets.Max(pet => pet.Age + pet.Name.Length);
Console.WriteLine(
"The maximum pet age plus name length is {0}.",
max);
}
/*
This code produces the following output:
The maximum pet age plus name length is 14.
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub MaxEx4()
' Create an array of Pet objects.
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}}
' Determine the "maximum" pet by passing a
' lambda expression to Max() that sums the pet's age
' and name length.
Dim max As Integer = pets.Max(Function(pet) _
pet.Age + pet.Name.Length)
' Display the result.
Console.WriteLine($"The maximum pet age plus name length is {max}")
End Sub
' This code produces the following output:
'
' The maximum pet age plus name length is 14
Commenti
Il Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) metodo usa l'implementazione Int32 di IComparable<T> per confrontare i valori.
È possibile applicare questo metodo a una sequenza di valori arbitrari se si specifica una funzione, selector, che proietta i membri di source in un tipo numerico, in particolare Nullable<Int32> in C# o Nullable(Of Int32) in Visual Basic.
Nella sintassi dell'espressione di query Visual Basic una clausola Aggregate Into Max() viene convertita in una chiamata di Max.
Vedi anche
- Clausola Aggregate (Visual Basic)
Si applica a
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo nullable Double.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static Nullable<double> Max(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, Nullable<double>> ^ selector);
public static double? Max<TSource>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,double?> selector);
static member Max : seq<'Source> * Func<'Source, Nullable<double>> -> Nullable<double>
<Extension()>
Public Function Max(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Nullable(Of Double))) As Nullable(Of Double)
Parametri di tipo
- TSource
Tipo degli elementi di source.
Parametri
- source
- IEnumerable<TSource>
Sequenza di valori per determinare il valore massimo di .
Valori restituiti
Valore di tipo Nullable<Double> in C# o Nullable(Of Double) in Visual Basic che corrisponde al valore massimo nella sequenza.
Eccezioni
source o selector è null.
Esempio
Nell'esempio di codice seguente viene illustrato come usare Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) per determinare il valore massimo in una sequenza di valori proiettati.
Annotazioni
Questo esempio di codice usa un overload del metodo diverso dall'overload specifico descritto in questo articolo. Per estendere l'esempio all'overload descritto in questo articolo, modificare il corpo della selector funzione.
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void MaxEx4()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
int max = pets.Max(pet => pet.Age + pet.Name.Length);
Console.WriteLine(
"The maximum pet age plus name length is {0}.",
max);
}
/*
This code produces the following output:
The maximum pet age plus name length is 14.
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub MaxEx4()
' Create an array of Pet objects.
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}}
' Determine the "maximum" pet by passing a
' lambda expression to Max() that sums the pet's age
' and name length.
Dim max As Integer = pets.Max(Function(pet) _
pet.Age + pet.Name.Length)
' Display the result.
Console.WriteLine($"The maximum pet age plus name length is {max}")
End Sub
' This code produces the following output:
'
' The maximum pet age plus name length is 14
Commenti
Il Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) metodo usa l'implementazione Double di IComparable<T> per confrontare i valori.
È possibile applicare questo metodo a una sequenza di valori arbitrari se si specifica una funzione, selector, che proietta i membri di source in un tipo numerico, in particolare Nullable<Double> in C# o Nullable(Of Double) in Visual Basic.
Nella sintassi dell'espressione di query Visual Basic una clausola Aggregate Into Max() viene convertita in una chiamata di Max.
Vedi anche
- Clausola Aggregate (Visual Basic)
Si applica a
Max<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo Int64.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static long Max(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, long> ^ selector);
public static long Max<TSource>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,long> selector);
static member Max : seq<'Source> * Func<'Source, int64> -> int64
<Extension()>
Public Function Max(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Long)) As Long
Parametri di tipo
- TSource
Tipo degli elementi di source.
Parametri
- source
- IEnumerable<TSource>
Sequenza di valori per determinare il valore massimo di .
Valori restituiti
Valore massimo nella sequenza.
Eccezioni
source o selector è null.
source non contiene elementi.
Esempio
Nell'esempio di codice seguente viene illustrato come usare Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) per determinare il valore massimo in una sequenza di valori proiettati.
Annotazioni
Questo esempio di codice usa un overload del metodo diverso dall'overload specifico descritto in questo articolo. Per estendere l'esempio all'overload descritto in questo articolo, modificare il corpo della selector funzione.
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void MaxEx4()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
int max = pets.Max(pet => pet.Age + pet.Name.Length);
Console.WriteLine(
"The maximum pet age plus name length is {0}.",
max);
}
/*
This code produces the following output:
The maximum pet age plus name length is 14.
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub MaxEx4()
' Create an array of Pet objects.
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}}
' Determine the "maximum" pet by passing a
' lambda expression to Max() that sums the pet's age
' and name length.
Dim max As Integer = pets.Max(Function(pet) _
pet.Age + pet.Name.Length)
' Display the result.
Console.WriteLine($"The maximum pet age plus name length is {max}")
End Sub
' This code produces the following output:
'
' The maximum pet age plus name length is 14
Commenti
Il Max<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) metodo usa l'implementazione Int64 di IComparable<T> per confrontare i valori.
È possibile applicare questo metodo a una sequenza di valori arbitrari se si specifica una funzione , selector, che proietta i membri di source in un tipo numerico, in particolare Int64.
Nella sintassi dell'espressione di query Visual Basic una clausola Aggregate Into Max() viene convertita in una chiamata di Max.
Vedi anche
- Clausola Aggregate (Visual Basic)
Si applica a
Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo Int32.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static int Max(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, int> ^ selector);
public static int Max<TSource>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int> selector);
static member Max : seq<'Source> * Func<'Source, int> -> int
<Extension()>
Public Function Max(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Integer)) As Integer
Parametri di tipo
- TSource
Tipo degli elementi di source.
Parametri
- source
- IEnumerable<TSource>
Sequenza di valori per determinare il valore massimo di .
Valori restituiti
Valore massimo nella sequenza.
Eccezioni
source o selector è null.
source non contiene elementi.
Esempio
Nell'esempio di codice seguente viene illustrato come usare Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) per determinare il valore massimo in una sequenza di valori proiettati.
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void MaxEx4()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
int max = pets.Max(pet => pet.Age + pet.Name.Length);
Console.WriteLine(
"The maximum pet age plus name length is {0}.",
max);
}
/*
This code produces the following output:
The maximum pet age plus name length is 14.
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub MaxEx4()
' Create an array of Pet objects.
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}}
' Determine the "maximum" pet by passing a
' lambda expression to Max() that sums the pet's age
' and name length.
Dim max As Integer = pets.Max(Function(pet) _
pet.Age + pet.Name.Length)
' Display the result.
Console.WriteLine($"The maximum pet age plus name length is {max}")
End Sub
' This code produces the following output:
'
' The maximum pet age plus name length is 14
Commenti
Il Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) metodo usa l'implementazione Int32 di IComparable<T> per confrontare i valori.
È possibile applicare questo metodo a una sequenza di valori arbitrari se si specifica una funzione , selector, che proietta i membri di source in un tipo numerico, in particolare Int32.
Nella sintassi dell'espressione di query Visual Basic una clausola Aggregate Into Max() viene convertita in una chiamata di Max.
Vedi anche
- Clausola Aggregate (Visual Basic)
Si applica a
Max<TSource>(IEnumerable<TSource>, Func<TSource,Double>)
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo Double.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static double Max(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, double> ^ selector);
public static double Max<TSource>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,double> selector);
static member Max : seq<'Source> * Func<'Source, double> -> double
<Extension()>
Public Function Max(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Double)) As Double
Parametri di tipo
- TSource
Tipo degli elementi di source.
Parametri
- source
- IEnumerable<TSource>
Sequenza di valori per determinare il valore massimo di .
Valori restituiti
Valore massimo nella sequenza.
Eccezioni
source o selector è null.
source non contiene elementi.
Esempio
Nell'esempio di codice seguente viene illustrato come usare Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) per determinare il valore massimo in una sequenza di valori proiettati.
Annotazioni
Questo esempio di codice usa un overload del metodo diverso dall'overload specifico descritto in questo articolo. Per estendere l'esempio all'overload descritto in questo articolo, modificare il corpo della selector funzione.
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void MaxEx4()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
int max = pets.Max(pet => pet.Age + pet.Name.Length);
Console.WriteLine(
"The maximum pet age plus name length is {0}.",
max);
}
/*
This code produces the following output:
The maximum pet age plus name length is 14.
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub MaxEx4()
' Create an array of Pet objects.
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}}
' Determine the "maximum" pet by passing a
' lambda expression to Max() that sums the pet's age
' and name length.
Dim max As Integer = pets.Max(Function(pet) _
pet.Age + pet.Name.Length)
' Display the result.
Console.WriteLine($"The maximum pet age plus name length is {max}")
End Sub
' This code produces the following output:
'
' The maximum pet age plus name length is 14
Commenti
Il Max<TSource>(IEnumerable<TSource>, Func<TSource,Double>) metodo usa l'implementazione Double di IComparable<T> per confrontare i valori.
È possibile applicare questo metodo a una sequenza di valori arbitrari se si specifica una funzione , selector, che proietta i membri di source in un tipo numerico, in particolare Double.
Nella sintassi dell'espressione di query Visual Basic una clausola Aggregate Into Max() viene convertita in una chiamata di Max.
Vedi anche
- Clausola Aggregate (Visual Basic)
Si applica a
Max<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo Decimal.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static System::Decimal Max(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, System::Decimal> ^ selector);
public static decimal Max<TSource>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,decimal> selector);
static member Max : seq<'Source> * Func<'Source, decimal> -> decimal
<Extension()>
Public Function Max(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Decimal)) As Decimal
Parametri di tipo
- TSource
Tipo degli elementi di source.
Parametri
- source
- IEnumerable<TSource>
Sequenza di valori per determinare il valore massimo di .
Valori restituiti
Valore massimo nella sequenza.
Eccezioni
source o selector è null.
source non contiene elementi.
Esempio
Nell'esempio di codice seguente viene illustrato come usare Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) per determinare il valore massimo in una sequenza di valori proiettati.
Annotazioni
Questo esempio di codice usa un overload del metodo diverso dall'overload specifico descritto in questo articolo. Per estendere l'esempio all'overload descritto in questo articolo, modificare il corpo della selector funzione.
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void MaxEx4()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
int max = pets.Max(pet => pet.Age + pet.Name.Length);
Console.WriteLine(
"The maximum pet age plus name length is {0}.",
max);
}
/*
This code produces the following output:
The maximum pet age plus name length is 14.
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub MaxEx4()
' Create an array of Pet objects.
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}}
' Determine the "maximum" pet by passing a
' lambda expression to Max() that sums the pet's age
' and name length.
Dim max As Integer = pets.Max(Function(pet) _
pet.Age + pet.Name.Length)
' Display the result.
Console.WriteLine($"The maximum pet age plus name length is {max}")
End Sub
' This code produces the following output:
'
' The maximum pet age plus name length is 14
Commenti
Il Max<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) metodo usa l'implementazione Decimal di IComparable<T> per confrontare i valori.
È possibile applicare questo metodo a una sequenza di valori arbitrari se si specifica una funzione , selector, che proietta i membri di source in un tipo numerico, in particolare Decimal.
Nella sintassi dell'espressione di query Visual Basic una clausola Aggregate Into Max() viene convertita in una chiamata di Max.
Vedi anche
- Clausola Aggregate (Visual Basic)
Si applica a
Max<TSource>(IEnumerable<TSource>)
Restituisce il valore massimo in una sequenza generica.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static TSource Max(System::Collections::Generic::IEnumerable<TSource> ^ source);
public static TSource Max<TSource>(this System.Collections.Generic.IEnumerable<TSource> source);
static member Max : seq<'Source> -> 'Source
<Extension()>
Public Function Max(Of TSource) (source As IEnumerable(Of TSource)) As TSource
Parametri di tipo
- TSource
Tipo degli elementi di source.
Parametri
- source
- IEnumerable<TSource>
Sequenza di valori per determinare il valore massimo di .
Valori restituiti
Valore massimo nella sequenza.
Eccezioni
source è null.
Nessun oggetto in source implementa l'interfaccia IComparable o IComparable<T> .
Esempio
Nell'esempio di codice seguente viene illustrato come usare Max<TSource>(IEnumerable<TSource>) per determinare il valore massimo in una sequenza di IComparable<T> oggetti.
/// <summary>
/// This class implements IComparable to be able to
/// compare one Pet to another Pet.
/// </summary>
class Pet : IComparable<Pet>
{
public string Name { get; set; }
public int Age { get; set; }
/// <summary>
/// Compares this Pet to another Pet by
/// summing each Pet's age and name length.
/// </summary>
/// <param name="other">The Pet to compare this Pet to.</param>
/// <returns>-1 if this Pet is 'less' than the other Pet,
/// 0 if they are equal,
/// or 1 if this Pet is 'greater' than the other Pet.</returns>
int IComparable<Pet>.CompareTo(Pet other)
{
int sumOther = other.Age + other.Name.Length;
int sumThis = this.Age + this.Name.Length;
if (sumOther > sumThis)
return -1;
else if (sumOther == sumThis)
return 0;
else
return 1;
}
}
public static void MaxEx3()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
Pet max = pets.Max();
Console.WriteLine(
"The 'maximum' animal is {0}.",
max.Name);
}
/*
This code produces the following output:
The 'maximum' animal is Barley.
*/
' This class implements IComparable
' and has a custom 'CompareTo' implementation.
Class Pet
Implements IComparable(Of Pet)
Public Name As String
Public Age As Integer
''' <summary>
''' Compares Pet objects by the sum of their age and name length.
''' </summary>
''' <param name="other">The Pet to compare this Pet to.</param>
''' <returns>-1 if this Pet's sum is 'less' than the other Pet,
''' 0 if they are equal,
''' or 1 if this Pet's sum is 'greater' than the other Pet.</returns>
Function CompareTo(ByVal other As Pet) As Integer _
Implements IComparable(Of Pet).CompareTo
If (other.Age + other.Name.Length > Me.Age + Me.Name.Length) Then
Return -1
ElseIf (other.Age + other.Name.Length = Me.Age + Me.Name.Length) Then
Return 0
Else
Return 1
End If
End Function
End Class
Sub MaxEx3()
' Create an array of Pet objects.
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}}
' Find the "maximum" pet according to the
' custom CompareTo() implementation.
Dim max As Pet = pets.Max()
' Display the result.
Console.WriteLine($"The 'maximum' animal is {max.Name}")
End Sub
' This code produces the following output:
'
' The 'maximum' animal is Barley
Commenti
Se il tipo TSource implementa IComparable<T>, il metodo usa tale Max<TSource>(IEnumerable<TSource>) implementazione per confrontare i valori. In caso contrario, se il tipo TSource implementa IComparable, tale implementazione viene usata per confrontare i valori.
Se TSource è un tipo riferimento e la sequenza di origine è vuota o contiene solo valori che sono null, questo metodo restituisce null.
Nella sintassi dell'espressione di query Visual Basic una clausola Aggregate Into Max() viene convertita in una chiamata di Max.
Vedi anche
- Clausola Aggregate (Visual Basic)
Si applica a
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)
Richiama una funzione di trasformazione su ogni elemento di una sequenza e restituisce il valore massimo nullable Decimal.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static Nullable<System::Decimal> Max(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, Nullable<System::Decimal>> ^ selector);
public static decimal? Max<TSource>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,decimal?> selector);
static member Max : seq<'Source> * Func<'Source, Nullable<decimal>> -> Nullable<decimal>
<Extension()>
Public Function Max(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Nullable(Of Decimal))) As Nullable(Of Decimal)
Parametri di tipo
- TSource
Tipo degli elementi di source.
Parametri
- source
- IEnumerable<TSource>
Sequenza di valori per determinare il valore massimo di .
Valori restituiti
Valore di tipo Nullable<Decimal> in C# o Nullable(Of Decimal) in Visual Basic che corrisponde al valore massimo nella sequenza.
Eccezioni
source o selector è null.
Esempio
Nell'esempio di codice seguente viene illustrato come usare Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) per determinare il valore massimo in una sequenza di valori proiettati.
Annotazioni
Questo esempio di codice usa un overload del metodo diverso dall'overload specifico descritto in questo articolo. Per estendere l'esempio all'overload descritto in questo articolo, modificare il corpo della selector funzione.
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void MaxEx4()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
int max = pets.Max(pet => pet.Age + pet.Name.Length);
Console.WriteLine(
"The maximum pet age plus name length is {0}.",
max);
}
/*
This code produces the following output:
The maximum pet age plus name length is 14.
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub MaxEx4()
' Create an array of Pet objects.
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}}
' Determine the "maximum" pet by passing a
' lambda expression to Max() that sums the pet's age
' and name length.
Dim max As Integer = pets.Max(Function(pet) _
pet.Age + pet.Name.Length)
' Display the result.
Console.WriteLine($"The maximum pet age plus name length is {max}")
End Sub
' This code produces the following output:
'
' The maximum pet age plus name length is 14
Commenti
Il Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) metodo usa l'implementazione Decimal di IComparable<T> per confrontare i valori.
È possibile applicare questo metodo a una sequenza di valori arbitrari se si specifica una funzione, selector, che proietta i membri di source in un tipo numerico, in particolare Nullable<Decimal> in C# o Nullable(Of Decimal) in Visual Basic.
Nella sintassi dell'espressione di query Visual Basic una clausola Aggregate Into Max() viene convertita in una chiamata di Max.
Vedi anche
- Clausola Aggregate (Visual Basic)