From bb7dc2a0dd4443e65de4e1b79a9a26780e406e2c Mon Sep 17 00:00:00 2001 From: Benjamin Popp Date: Wed, 24 Apr 2019 05:49:23 -0500 Subject: [PATCH] make an extension method for List.Sort that works the way I expected it to - taking a sorting lambda --- src/HexManiac.Core/HexManiac.Core.csproj | 2 +- .../{NumericExtensions.cs => SystemExtensions.cs} | 6 +++++- src/HexManiac.Core/ViewModels/ViewPort.cs | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) rename src/HexManiac.Core/{NumericExtensions.cs => SystemExtensions.cs} (65%) diff --git a/src/HexManiac.Core/HexManiac.Core.csproj b/src/HexManiac.Core/HexManiac.Core.csproj index 2a91b803..b8837287 100644 --- a/src/HexManiac.Core/HexManiac.Core.csproj +++ b/src/HexManiac.Core/HexManiac.Core.csproj @@ -60,7 +60,7 @@ - + diff --git a/src/HexManiac.Core/NumericExtensions.cs b/src/HexManiac.Core/SystemExtensions.cs similarity index 65% rename from src/HexManiac.Core/NumericExtensions.cs rename to src/HexManiac.Core/SystemExtensions.cs index 51613354..a2ba9f4e 100644 --- a/src/HexManiac.Core/NumericExtensions.cs +++ b/src/HexManiac.Core/SystemExtensions.cs @@ -1,12 +1,16 @@ using System; +using System.Collections.Generic; namespace HavenSoft.HexManiac.Core { - public static class NumericExtensions { + public static class SystemExtensions { public static T LimitToRange(this T value, T lower, T upper) where T : IComparable { if (upper.CompareTo(lower) < 0) throw new ArgumentException($"upper value {upper} is less than lower value {lower}"); if (value.CompareTo(lower) < 0) return lower; if (upper.CompareTo(value) < 0) return upper; return value; } + public static void Sort(this List list, Func compare) { + list.Sort(new StubComparer { Compare = compare }); + } } } diff --git a/src/HexManiac.Core/ViewModels/ViewPort.cs b/src/HexManiac.Core/ViewModels/ViewPort.cs index 3b40b29e..d454b1ab 100644 --- a/src/HexManiac.Core/ViewModels/ViewPort.cs +++ b/src/HexManiac.Core/ViewModels/ViewPort.cs @@ -548,7 +548,7 @@ namespace HavenSoft.HexManiac.Core.ViewModels { } // reorder the list to start at the current cursor position - results.Sort(new StubComparer<(int start, int end)> { Compare = (x, y) => x.start.CompareTo(y.start) }); + results.Sort((a, b) => a.start.CompareTo(b.start)); var offset = scroll.ViewPointToDataIndex(SelectionStart); var left = results.Where(result => result.start < offset); var right = results.Where(result => result.start >= offset);