Min (LINQ)
Enumerable.Min is extension method from System.Linq namespace. It returns minimal value of numeric collection.
Min for Numeric Types
Gets minimal number from list of integer numbers.
Gets minimal number from list of decimal numbers.
Calling Min on empty collection throws exception.
Min for Nullable Numeric Types
Gets minimal number from list of nullable integers.
Returns null if the collection contains only null values.
Returns null if the collection is empty.
Min with Selector
This example gets length of the longest string.
Min for Types Implementing IComparable
LINQ method Min can be used also on collection of custom type (not numeric type like int or decimal). The custom type have to implement IComparable interface.
Lets have custom type Money which implements IComparable.
And this is usage of Min method on the Money collection.
Min with Query Syntax
LINQ query expression to get minimal item in the collection.
LINQ query expression to get minimal item which matches specified predicate.
LINQ query expression to get minimal string length using selector.
Min with Group By
This example shows how to get minimal value per group. Lets have players. Each player belongs to a team and have a score. Team best score is minimal score of players in a team.
Min Implementation
This is .NET Framework implementation of Enumerable.Min method for collection of numeric type (in this case IEnumerable<int>
). Note that it throws the exception for an empty collection on the last line (throw Error.NoElements();
)).
This is .NET Framework implementation of Enumerable.Min method for collection of nullable numeric type (in this case IEnumerable<int?>
). Note that it returns null for an empty collection (int? value = null;
). Also notice that it returns null if all values in the collection are null.
See also
- MSDN Enumerable.Min - .NET Framework documentation
- LINQ Aggregation Methods
- LINQ Sum - gets sum of numeric collection
- LINQ Max - gets maximal item from collection
- LINQ Min - gets minimal item from collection
- LINQ Count - counts number of items in a collection (result type is Int32)
- LINQ LongCount - counts number of items in a collection (result type is Int64)
- LINQ Average - computes average value of numeric collection
- LINQ Aggregate - applies aggregate function to a collection
- C# List - illustrative examples of all List<T> methods
- C# foreach - how foreach and IEnumerable works debuggable online