Enumerable.Max Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Returns the maximum value in a sequence of values.
Overloads
Max(IEnumerable<Nullable<Int32>>) |
Returns the maximum value in a sequence of nullable Int32 values. |
Max(IEnumerable<Single>) |
Returns the maximum value in a sequence of Single values. |
Max(IEnumerable<Nullable<Single>>) |
Returns the maximum value in a sequence of nullable Single values. |
Max(IEnumerable<Nullable<Int64>>) |
Returns the maximum value in a sequence of nullable Int64 values. |
Max(IEnumerable<Nullable<Double>>) |
Returns the maximum value in a sequence of nullable Double values. |
Max(IEnumerable<Double>) |
Returns the maximum value in a sequence of Double values. |
Max(IEnumerable<Int64>) |
Returns the maximum value in a sequence of Int64 values. |
Max(IEnumerable<Int32>) |
Returns the maximum value in a sequence of Int32 values. |
Max(IEnumerable<Decimal>) |
Returns the maximum value in a sequence of Decimal values. |
Max(IEnumerable<Nullable<Decimal>>) |
Returns the maximum value in a sequence of nullable Decimal values. |
Max<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Invokes a transform function on each element of a generic sequence and returns the maximum resulting value. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Invokes a transform function on each element of a sequence and returns the maximum Single value. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Invokes a transform function on each element of a sequence and returns the maximum nullable Single value. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Invokes a transform function on each element of a sequence and returns the maximum nullable Int64 value. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Invokes a transform function on each element of a sequence and returns the maximum nullable Int32 value. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Invokes a transform function on each element of a sequence and returns the maximum nullable Decimal value. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Invokes a transform function on each element of a sequence and returns the maximum nullable Double value. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Invokes a transform function on each element of a sequence and returns the maximum Int32 value. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Invokes a transform function on each element of a sequence and returns the maximum Double value. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Invokes a transform function on each element of a sequence and returns the maximum Decimal value. |
Max<TSource>(IEnumerable<TSource>, IComparer<TSource>) |
Returns the maximum value in a generic sequence. |
Max<TSource>(IEnumerable<TSource>) |
Returns the maximum value in a generic sequence. |
Max<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Invokes a transform function on each element of a sequence and returns the maximum Int64 value. |
Max(IEnumerable<Nullable<Int32>>)
- Source:
- Max.cs
- Source:
- Max.cs
- Source:
- Max.cs
Returns the maximum value in a sequence of nullable Int32 values.
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)
Parameters
- source
- IEnumerable<Nullable<Int32>>
A sequence of nullable Int32 values to determine the maximum value of.
Returns
A value of type Nullable<Int32>
in C# or Nullable(Of Int32)
in Visual Basic that corresponds to the maximum value in the sequence.
Exceptions
source
is null
.
Remarks
The Max(IEnumerable<Nullable<Int32>>) method uses the Int32 implementation of IComparable<T> to compare values.
If the source sequence is empty or contains only values that are null
, this function returns null
.
In Visual Basic query expression syntax, an Aggregate Into Max()
clause translates to an invocation of Max.
See also
Applies to
Max(IEnumerable<Single>)
- Source:
- Max.cs
- Source:
- Max.cs
- Source:
- Max.cs
Returns the maximum value in a sequence of Single values.
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
Parameters
- source
- IEnumerable<Single>
A sequence of Single values to determine the maximum value of.
Returns
The maximum value in the sequence.
Exceptions
source
is null
.
source
contains no elements.
Remarks
The Max(IEnumerable<Single>) method uses the Single implementation of IComparable<T> to compare values.
In Visual Basic query expression syntax, an Aggregate Into Max()
clause translates to an invocation of Max.
See also
Applies to
Max(IEnumerable<Nullable<Single>>)
- Source:
- Max.cs
- Source:
- Max.cs
- Source:
- Max.cs
Returns the maximum value in a sequence of nullable Single values.
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)
Parameters
- source
- IEnumerable<Nullable<Single>>
A sequence of nullable Single values to determine the maximum value of.
Returns
A value of type Nullable<Single>
in C# or Nullable(Of Single)
in Visual Basic that corresponds to the maximum value in the sequence.
Exceptions
source
is null
.
Remarks
The Max(IEnumerable<Nullable<Single>>) method uses the Single implementation of IComparable<T> to compare values.
If the source sequence is empty or contains only values that are null
, this function returns null
.
In Visual Basic query expression syntax, an Aggregate Into Max()
clause translates to an invocation of Max.
See also
Applies to
Max(IEnumerable<Nullable<Int64>>)
- Source:
- Max.cs
- Source:
- Max.cs
- Source:
- Max.cs
Returns the maximum value in a sequence of nullable Int64 values.
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)
Parameters
- source
- IEnumerable<Nullable<Int64>>
A sequence of nullable Int64 values to determine the maximum value of.
Returns
A value of type Nullable<Int64>
in C# or Nullable(Of Int64)
in Visual Basic that corresponds to the maximum value in the sequence.
Exceptions
source
is null
.
Remarks
The Max(IEnumerable<Nullable<Int64>>) method uses the Int64 implementation of IComparable<T> to compare values.
If the source sequence is empty or contains only values that are null
, this function returns null
.
In Visual Basic query expression syntax, an Aggregate Into Max()
clause translates to an invocation of Max.
See also
Applies to
Max(IEnumerable<Nullable<Double>>)
- Source:
- Max.cs
- Source:
- Max.cs
- Source:
- Max.cs
Returns the maximum value in a sequence of nullable Double values.
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)
Parameters
- source
- IEnumerable<Nullable<Double>>
A sequence of nullable Double values to determine the maximum value of.
Returns
A value of type Nullable<Double>
in C# or Nullable(Of Double)
in Visual Basic that corresponds to the maximum value in the sequence.
Exceptions
source
is null
.
Examples
The following code example demonstrates how to use Max(IEnumerable<Nullable<Double>>) to determine the maximum value in a sequence.
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
Remarks
The Max(IEnumerable<Nullable<Double>>) method uses the Double implementation of IComparable<T> to compare values.
If the source sequence is empty or contains only values that are null
, this function returns null
.
In Visual Basic query expression syntax, an Aggregate Into Max()
clause translates to an invocation of Max.
See also
Applies to
Max(IEnumerable<Double>)
- Source:
- Max.cs
- Source:
- Max.cs
- Source:
- Max.cs
Returns the maximum value in a sequence of Double values.
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
Parameters
- source
- IEnumerable<Double>
A sequence of Double values to determine the maximum value of.
Returns
The maximum value in the sequence.
Exceptions
source
is null
.
source
contains no elements.
Remarks
The Max(IEnumerable<Double>) method uses the Double implementation of IComparable<T> to compare values.
In Visual Basic query expression syntax, an Aggregate Into Max()
clause translates to an invocation of Max.
See also
Applies to
Max(IEnumerable<Int64>)
- Source:
- Max.cs
- Source:
- Max.cs
- Source:
- Max.cs
Returns the maximum value in a sequence of Int64 values.
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
Parameters
- source
- IEnumerable<Int64>
A sequence of Int64 values to determine the maximum value of.
Returns
The maximum value in the sequence.
Exceptions
source
is null
.
source
contains no elements.
Examples
The following code example demonstrates how to use Max(IEnumerable<Int64>) to determine the maximum value in a sequence.
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
Remarks
The Max(IEnumerable<Int64>) method uses the Int64 implementation of IComparable<T> to compare values.
In Visual Basic query expression syntax, an Aggregate Into Max()
clause translates to an invocation of Max.
See also
Applies to
Max(IEnumerable<Int32>)
- Source:
- Max.cs
- Source:
- Max.cs
- Source:
- Max.cs
Returns the maximum value in a sequence of Int32 values.
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
Parameters
- source
- IEnumerable<Int32>
A sequence of Int32 values to determine the maximum value of.
Returns
The maximum value in the sequence.
Exceptions
source
is null
.
source
contains no elements.
Remarks
The Max(IEnumerable<Int32>) method uses the Int32 implementation of IComparable<T> to compare values.
In Visual Basic query expression syntax, an Aggregate Into Max()
clause translates to an invocation of Max.
See also
Applies to
Max(IEnumerable<Decimal>)
- Source:
- Max.cs
- Source:
- Max.cs
- Source:
- Max.cs
Returns the maximum value in a sequence of Decimal values.
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
Parameters
- source
- IEnumerable<Decimal>
A sequence of Decimal values to determine the maximum value of.
Returns
The maximum value in the sequence.
Exceptions
source
is null
.
source
contains no elements.
Remarks
The Max(IEnumerable<Decimal>) method uses the Decimal implementation of IComparable<T> to compare values.
In Visual Basic query expression syntax, an Aggregate Into Max()
clause translates to an invocation of Max.
See also
Applies to
Max(IEnumerable<Nullable<Decimal>>)
- Source:
- Max.cs
- Source:
- Max.cs
- Source:
- Max.cs
Returns the maximum value in a sequence of nullable Decimal values.
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)
Parameters
- source
- IEnumerable<Nullable<Decimal>>
A sequence of nullable Decimal values to determine the maximum value of.
Returns
A value of type Nullable<Decimal>
in C# or Nullable(Of Decimal)
in Visual Basic that corresponds to the maximum value in the sequence.
Exceptions
source
is null
.
Remarks
The Max(IEnumerable<Nullable<Decimal>>) method uses the Decimal implementation of IComparable<T> to compare values.
If the source sequence is empty or contains only values that are null
, this function returns null
.
In Visual Basic query expression syntax, an Aggregate Into Max()
clause translates to an invocation of Max.
See also
Applies to
Max<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)
- Source:
- Max.cs
- Source:
- Max.cs
- Source:
- Max.cs
Invokes a transform function on each element of a generic sequence and returns the maximum resulting value.
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);
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
Type Parameters
- TSource
The type of the elements of source
.
- TResult
The type of the value returned by selector
.
Parameters
- source
- IEnumerable<TSource>
A sequence of values to determine the maximum value of.
- selector
- Func<TSource,TResult>
A transform function to apply to each element.
Returns
The maximum value in the sequence.
Exceptions
source
or selector
is null
.
Examples
The following code example demonstrates how to use Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) to determine the maximum value in a sequence of projected values.
Note
This code example uses an overload of the method that's different from the specific overload that this article describes. To extend the example to the overload that this article describes, change the body of the selector
function.
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
Remarks
If type TResult
implements IComparable<T>, this method uses that implementation to compare values. Otherwise, if type TResult
implements IComparable, that implementation is used to compare values.
In Visual Basic query expression syntax, an Aggregate Into Max()
clause translates to an invocation of Max.
See also
Applies to
Max<TSource>(IEnumerable<TSource>, Func<TSource,Single>)
- Source:
- Max.cs
- Source:
- Max.cs
- Source:
- Max.cs
Invokes a transform function on each element of a sequence and returns the maximum Single value.
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
Type Parameters
- TSource
The type of the elements of source
.
Parameters
- source
- IEnumerable<TSource>
A sequence of values to determine the maximum value of.
Returns
The maximum value in the sequence.
Exceptions
source
or selector
is null
.
source
contains no elements.
Examples
The following code example demonstrates how to use Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) to determine the maximum value in a sequence of projected values.
Note
This code example uses an overload of the method that's different from the specific overload that this article describes. To extend the example to the overload that this article describes, change the body of the selector
function.
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
Remarks
The Max<TSource>(IEnumerable<TSource>, Func<TSource,Single>) method uses the Single implementation of IComparable<T> to compare values.
You can apply this method to a sequence of arbitrary values if you provide a function, selector
, that projects the members of source
into a numeric type, specifically Single.
In Visual Basic query expression syntax, an Aggregate Into Max()
clause translates to an invocation of Max.
See also
Applies to
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)
- Source:
- Max.cs
- Source:
- Max.cs
- Source:
- Max.cs
Invokes a transform function on each element of a sequence and returns the maximum nullable Single value.
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)
Type Parameters
- TSource
The type of the elements of source
.
Parameters
- source
- IEnumerable<TSource>
A sequence of values to determine the maximum value of.
Returns
The value that corresponds to the maximum value in the sequence.
Exceptions
source
or selector
is null
.
Examples
The following code example demonstrates how to use Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) to determine the maximum value in a sequence of projected values.
Note
This code example uses an overload of the method that's different from the specific overload that this article describes. To extend the example to the overload that this article describes, change the body of the selector
function.
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
Remarks
The Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) method uses the Single implementation of IComparable<T> to compare values.
You can apply this method to a sequence of arbitrary values if you provide a function, selector
, that projects the members of source
into a numeric type, specifically Nullable<Single>
in C# or Nullable(Of Single)
in Visual Basic.
In Visual Basic query expression syntax, an Aggregate Into Max()
clause translates to an invocation of Max.
See also
Applies to
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)
- Source:
- Max.cs
- Source:
- Max.cs
- Source:
- Max.cs
Invokes a transform function on each element of a sequence and returns the maximum nullable Int64 value.
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)
Type Parameters
- TSource
The type of the elements of source
.
Parameters
- source
- IEnumerable<TSource>
A sequence of values to determine the maximum value of.
Returns
The value that corresponds to the maximum value in the sequence.
Exceptions
source
or selector
is null
.
Examples
The following code example demonstrates how to use Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) to determine the maximum value in a sequence of projected values.
Note
This code example uses an overload of the method that's different from the specific overload that this article describes. To extend the example to the overload that this article describes, change the body of the selector
function.
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
Remarks
The Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) method uses the Int64 implementation of IComparable<T> to compare values.
You can apply this method to a sequence of arbitrary values if you provide a function, selector
, that projects the members of source
into a numeric type, specifically Nullable<Int64>
in C# or Nullable(Of Int64)
in Visual Basic.
In Visual Basic query expression syntax, an Aggregate Into Max()
clause translates to an invocation of Max.
See also
Applies to
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)
- Source:
- Max.cs
- Source:
- Max.cs
- Source:
- Max.cs
Invokes a transform function on each element of a sequence and returns the maximum nullable Int32 value.
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)
Type Parameters
- TSource
The type of the elements of source
.
Parameters
- source
- IEnumerable<TSource>
A sequence of values to determine the maximum value of.
Returns
The value of type Nullable<Int32>
in C# or Nullable(Of Int32)
in Visual Basic that corresponds to the maximum value in the sequence.
Exceptions
source
or selector
is null
.
Examples
The following code example demonstrates how to use Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) to determine the maximum value in a sequence of projected values.
Note
This code example uses an overload of the method that's different from the specific overload that this article describes. To extend the example to the overload that this article describes, change the body of the selector
function.
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
Remarks
The Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) method uses the Int32 implementation of IComparable<T> to compare values.
You can apply this method to a sequence of arbitrary values if you provide a function, selector
, that projects the members of source
into a numeric type, specifically Nullable<Int32>
in C# or Nullable(Of Int32)
in Visual Basic.
In Visual Basic query expression syntax, an Aggregate Into Max()
clause translates to an invocation of Max.
See also
Applies to
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)
- Source:
- Max.cs
- Source:
- Max.cs
- Source:
- Max.cs
Invokes a transform function on each element of a sequence and returns the maximum nullable Decimal value.
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)
Type Parameters
- TSource
The type of the elements of source
.
Parameters
- source
- IEnumerable<TSource>
A sequence of values to determine the maximum value of.
Returns
The value of type Nullable<Decimal>
in C# or Nullable(Of Decimal)
in Visual Basic that corresponds to the maximum value in the sequence.
Exceptions
source
or selector
is null
.
Examples
The following code example demonstrates how to use Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) to determine the maximum value in a sequence of projected values.
Note
This code example uses an overload of the method that's different from the specific overload that this article describes. To extend the example to the overload that this article describes, change the body of the selector
function.
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
Remarks
The Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) method uses the Decimal implementation of IComparable<T> to compare values.
You can apply this method to a sequence of arbitrary values if you provide a function, selector
, that projects the members of source
into a numeric type, specifically Nullable<Decimal>
in C# or Nullable(Of Decimal)
in Visual Basic.
In Visual Basic query expression syntax, an Aggregate Into Max()
clause translates to an invocation of Max.
See also
Applies to
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)
- Source:
- Max.cs
- Source:
- Max.cs
- Source:
- Max.cs
Invokes a transform function on each element of a sequence and returns the maximum nullable Double value.
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)
Type Parameters
- TSource
The type of the elements of source
.
Parameters
- source
- IEnumerable<TSource>
A sequence of values to determine the maximum value of.
Returns
The value of type Nullable<Double>
in C# or Nullable(Of Double)
in Visual Basic that corresponds to the maximum value in the sequence.
Exceptions
source
or selector
is null
.
Examples
The following code example demonstrates how to use Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) to determine the maximum value in a sequence of projected values.
Note
This code example uses an overload of the method that's different from the specific overload that this article describes. To extend the example to the overload that this article describes, change the body of the selector
function.
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
Remarks
The Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) method uses the Double implementation of IComparable<T> to compare values.
You can apply this method to a sequence of arbitrary values if you provide a function, selector
, that projects the members of source
into a numeric type, specifically Nullable<Double>
in C# or Nullable(Of Double)
in Visual Basic.
In Visual Basic query expression syntax, an Aggregate Into Max()
clause translates to an invocation of Max.
See also
Applies to
Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)
- Source:
- Max.cs
- Source:
- Max.cs
- Source:
- Max.cs
Invokes a transform function on each element of a sequence and returns the maximum Int32 value.
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
Type Parameters
- TSource
The type of the elements of source
.
Parameters
- source
- IEnumerable<TSource>
A sequence of values to determine the maximum value of.
Returns
The maximum value in the sequence.
Exceptions
source
or selector
is null
.
source
contains no elements.
Examples
The following code example demonstrates how to use Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) to determine the maximum value in a sequence of projected values.
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
Remarks
The Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) method uses the Int32 implementation of IComparable<T> to compare values.
You can apply this method to a sequence of arbitrary values if you provide a function, selector
, that projects the members of source
into a numeric type, specifically Int32.
In Visual Basic query expression syntax, an Aggregate Into Max()
clause translates to an invocation of Max.
See also
Applies to
Max<TSource>(IEnumerable<TSource>, Func<TSource,Double>)
- Source:
- Max.cs
- Source:
- Max.cs
- Source:
- Max.cs
Invokes a transform function on each element of a sequence and returns the maximum Double value.
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
Type Parameters
- TSource
The type of the elements of source
.
Parameters
- source
- IEnumerable<TSource>
A sequence of values to determine the maximum value of.
Returns
The maximum value in the sequence.
Exceptions
source
or selector
is null
.
source
contains no elements.
Examples
The following code example demonstrates how to use Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) to determine the maximum value in a sequence of projected values.
Note
This code example uses an overload of the method that's different from the specific overload that this article describes. To extend the example to the overload that this article describes, change the body of the selector
function.
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
Remarks
The Max<TSource>(IEnumerable<TSource>, Func<TSource,Double>) method uses the Double implementation of IComparable<T> to compare values.
You can apply this method to a sequence of arbitrary values if you provide a function, selector
, that projects the members of source
into a numeric type, specifically Double.
In Visual Basic query expression syntax, an Aggregate Into Max()
clause translates to an invocation of Max.
See also
Applies to
Max<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)
- Source:
- Max.cs
- Source:
- Max.cs
- Source:
- Max.cs
Invokes a transform function on each element of a sequence and returns the maximum Decimal value.
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
Type Parameters
- TSource
The type of the elements of source
.
Parameters
- source
- IEnumerable<TSource>
A sequence of values to determine the maximum value of.
Returns
The maximum value in the sequence.
Exceptions
source
or selector
is null
.
source
contains no elements.
Examples
The following code example demonstrates how to use Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) to determine the maximum value in a sequence of projected values.
Note
This code example uses an overload of the method that's different from the specific overload that this article describes. To extend the example to the overload that this article describes, change the body of the selector
function.
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
Remarks
The Max<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) method uses the Decimal implementation of IComparable<T> to compare values.
You can apply this method to a sequence of arbitrary values if you provide a function, selector
, that projects the members of source
into a numeric type, specifically Decimal.
In Visual Basic query expression syntax, an Aggregate Into Max()
clause translates to an invocation of Max.
See also
Applies to
Max<TSource>(IEnumerable<TSource>, IComparer<TSource>)
- Source:
- Max.cs
- Source:
- Max.cs
- Source:
- Max.cs
Returns the maximum value in a generic sequence.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static TSource Max(System::Collections::Generic::IEnumerable<TSource> ^ source, System::Collections::Generic::IComparer<TSource> ^ comparer);
public static TSource? Max<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, System.Collections.Generic.IComparer<TSource>? comparer);
static member Max : seq<'Source> * System.Collections.Generic.IComparer<'Source> -> 'Source
<Extension()>
Public Function Max(Of TSource) (source As IEnumerable(Of TSource), comparer As IComparer(Of TSource)) As TSource
Type Parameters
- TSource
The type of the elements of source
.
Parameters
- source
- IEnumerable<TSource>
A sequence of values to determine the maximum value of.
- comparer
- IComparer<TSource>
The IComparer<T> to compare values.
Returns
The maximum value in the sequence.
Exceptions
source
is null
.
No object in source
implements the IComparable or IComparable<T> interface.
Remarks
If type TSource
implements IComparable<T>, the Max<TSource>(IEnumerable<TSource>) method uses that implementation to compare values. Otherwise, if type TSource
implements IComparable, that implementation is used to compare values.
If TSource
is a reference type and the source sequence is empty or contains only values that are null
, this method returns null
.
In Visual Basic query expression syntax, an Aggregate Into Max()
clause translates to an invocation of Max.
Applies to
Max<TSource>(IEnumerable<TSource>)
- Source:
- Max.cs
- Source:
- Max.cs
- Source:
- Max.cs
Returns the maximum value in a generic sequence.
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);
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
Type Parameters
- TSource
The type of the elements of source
.
Parameters
- source
- IEnumerable<TSource>
A sequence of values to determine the maximum value of.
Returns
The maximum value in the sequence.
Exceptions
source
is null
.
No object in source
implements the IComparable or IComparable<T> interface.
Examples
The following code example demonstrates how to use Max<TSource>(IEnumerable<TSource>) to determine the maximum value in a sequence of IComparable<T> objects.
/// <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
Remarks
If type TSource
implements IComparable<T>, the Max<TSource>(IEnumerable<TSource>) method uses that implementation to compare values. Otherwise, if type TSource
implements IComparable, that implementation is used to compare values.
If TSource
is a reference type and the source sequence is empty or contains only values that are null
, this method returns null
.
In Visual Basic query expression syntax, an Aggregate Into Max()
clause translates to an invocation of Max.
See also
Applies to
Max<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)
- Source:
- Max.cs
- Source:
- Max.cs
- Source:
- Max.cs
Invokes a transform function on each element of a sequence and returns the maximum Int64 value.
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
Type Parameters
- TSource
The type of the elements of source
.
Parameters
- source
- IEnumerable<TSource>
A sequence of values to determine the maximum value of.
Returns
The maximum value in the sequence.
Exceptions
source
or selector
is null
.
source
contains no elements.
Examples
The following code example demonstrates how to use Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) to determine the maximum value in a sequence of projected values.
Note
This code example uses an overload of the method that's different from the specific overload that this article describes. To extend the example to the overload that this article describes, change the body of the selector
function.
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
Remarks
The Max<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) method uses the Int64 implementation of IComparable<T> to compare values.
You can apply this method to a sequence of arbitrary values if you provide a function, selector
, that projects the members of source
into a numeric type, specifically Int64.
In Visual Basic query expression syntax, an Aggregate Into Max()
clause translates to an invocation of Max.