C# Max and Min: Get Highest or Lowest ElementUse Max and Min from System.Linq. Get the highest or lowest elements.

Max, Min. In C# programs we call Max (and Min) from System.Linq to get the largest or smallest element. Each element is iterated in the search.

Method details. These methods can also be used with lambda expressions. Higher-order functions can make programs shorter (but sometimes slower and harder to read).

Max. This program instantiates an array of 4 integers on the heap. Next the Max method is called upon this array. Finally we use another version of Max that receives a lambda expression.

using System;
using System.Linq;
class Program
{
static void Main()
{
int[] array1 = { 1, -1, -2, 0 };
// Find maximum number.
Console.WriteLine(array1.Max());
// Find maximum number when all numbers are made positive.
Console.WriteLine(array1.Max(element => Math.Abs(element)));
}
}1
2

Min. We want to find the minimum value in a collection (such as an array or List) in a simple way. With Min() we find the minimum element or the minimum value after a transformation.

Part 1 The first call to the Min() method determines that -1 is the smallest integer.

Part 2 The second call changes the 2 to -2, so that is now the smallest integer.

Info The values in the source array (array1) are not mutated. Min() provides a clear way to find the smallest value in a collection.

Also You can provide a transformation function, which provides a mechanism for you to insert additional logic if needed.

C# program that uses Min method

using System;
using System.Linq;
class Program
{
static void Main()
{
int[] array1 = { 1, -1, 2, 0 };
// Part 1: find minimum number.
Console.WriteLine(array1.Min());
// Part 2: find minimum number when all numbers are made negative.
Console.WriteLine(array1.Min(element => -element));
}
}-1
-2

Math.Max. The Math class contains some math methods like Max and Min that also find the lower or higher number. But these are simpler and only test 2 numbers.

A summary. The Max function can find either the maximum value in a collection, or the maximum value after a specific transformation is applied. Min returns the minimum value.

Notes. These methods are perhaps most useful with a lambda expression: this makes the computation adjustable. Other forms of delegates (not just lambdas) can be used.