Added MinBy extension

This commit is contained in:
Jaex 2021-11-17 05:11:32 +03:00
parent c0bc66f293
commit 83586c6440
2 changed files with 36 additions and 2 deletions

View file

@ -811,5 +811,40 @@ public static void ChangeFontStyle(this Control control, FontStyle fontStyle)
{
control.Font = new Font(control.Font, fontStyle);
}
public static T MinBy<T>(this IEnumerable<T> source, Func<T, IComparable> selector)
{
if (source == null)
{
throw new ArgumentNullException(nameof(source));
}
if (selector == null)
{
throw new ArgumentNullException(nameof(selector));
}
return source.Aggregate((min, cur) =>
{
if (min == null)
{
return cur;
}
IComparable minComparer = selector(min);
if (minComparer == null)
{
return cur;
}
IComparable curComparer = selector(cur);
if (curComparer == null)
{
return min;
}
return minComparer.CompareTo(curComparer) > 0 ? cur : min;
});
}
}
}

View file

@ -23,7 +23,6 @@
#endregion License Information (GPL v3)
using Microsoft.Win32;
using ShareX.HelpersLib;
using ShareX.Properties;
using ShareX.UploadersLib;
@ -66,7 +65,7 @@ public static string VersionText
StringBuilder sbVersionText = new StringBuilder();
Version version = Version.Parse(Application.ProductVersion);
sbVersionText.Append(version.Major + "." + version.Minor);
if (version.Build > 0) sbVersionText.Append("." + version.Build);
if (version.Build > 0 || version.Revision > 0) sbVersionText.Append("." + version.Build);
if (version.Revision > 0) sbVersionText.Append("." + version.Revision);
if (Dev) sbVersionText.Append(" Dev");
if (Portable) sbVersionText.Append(" Portable");