diff --git a/ICD.Common.Utils/Extensions/EnumerableExtensions.cs b/ICD.Common.Utils/Extensions/EnumerableExtensions.cs
index 85907c0..df1cac4 100644
--- a/ICD.Common.Utils/Extensions/EnumerableExtensions.cs
+++ b/ICD.Common.Utils/Extensions/EnumerableExtensions.cs
@@ -1305,6 +1305,37 @@ namespace ICD.Common.Utils.Extensions
}
}
+ ///
+ /// Returns the minimum value from the sequence, otherwise the default value.
+ ///
+ ///
+ ///
+ ///
+ public static T MinOrDefault([NotNull] this IEnumerable extends)
+ {
+ if (extends == null)
+ throw new ArgumentNullException("extends");
+
+ Comparer comparer = Comparer.Default;
+ T value = default(T);
+ bool first = true;
+
+ foreach (T x in extends)
+ {
+ if (first)
+ {
+ first = false;
+ value = x;
+ continue;
+ }
+
+ if (comparer.Compare(x, value) < 0)
+ value = x;
+ }
+
+ return value;
+ }
+
///
/// Returns the maximum value from the sequence, otherwise the default value.
///
@@ -1319,14 +1350,10 @@ namespace ICD.Common.Utils.Extensions
Comparer comparer = Comparer.Default;
T value = default(T);
- using (IEnumerator enumerator = extends.GetEnumerator())
+ foreach (T x in extends)
{
- while (enumerator.MoveNext())
- {
- T x = enumerator.Current;
- if (comparer.Compare(x, value) > 0)
- value = x;
- }
+ if (comparer.Compare(x, value) > 0)
+ value = x;
}
return value;