Files
spacerace/Assets/Src/IEnumerableExtensions.cs
2023-07-20 18:54:34 +10:00

22 lines
502 B
C#

using System;
using System.Collections.Generic;
using System.Linq;
public static class IEnumerableExtensions {
public static T MinBy<T, K>(this IEnumerable<T> source, Func<T, K> selector) {
T min = default;
bool anyValue = false;
foreach (var item in source) {
if (!anyValue || Comparer<K>.Default.Compare(selector(item), selector(min)) < 0) {
min = item;
anyValue = true;
}
}
return min;
}
}