From 83586c6440fe6e71f3764ccc1cede71aabd21449 Mon Sep 17 00:00:00 2001 From: Jaex Date: Wed, 17 Nov 2021 05:11:32 +0300 Subject: [PATCH] Added MinBy extension --- ShareX.HelpersLib/Extensions/Extensions.cs | 35 ++++++++++++++++++++++ ShareX/Program.cs | 3 +- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/ShareX.HelpersLib/Extensions/Extensions.cs b/ShareX.HelpersLib/Extensions/Extensions.cs index f5c2dd5bd..093389860 100644 --- a/ShareX.HelpersLib/Extensions/Extensions.cs +++ b/ShareX.HelpersLib/Extensions/Extensions.cs @@ -811,5 +811,40 @@ public static void ChangeFontStyle(this Control control, FontStyle fontStyle) { control.Font = new Font(control.Font, fontStyle); } + + public static T MinBy(this IEnumerable source, Func 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; + }); + } } } \ No newline at end of file diff --git a/ShareX/Program.cs b/ShareX/Program.cs index 138d4933e..e28278abb 100644 --- a/ShareX/Program.cs +++ b/ShareX/Program.cs @@ -23,7 +23,6 @@ You should have received a copy of the GNU General Public License #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");