diff --git a/ILSpy/AssemblyList.cs b/ILSpy/AssemblyList.cs index 7229a6503..9585d71f0 100644 --- a/ILSpy/AssemblyList.cs +++ b/ILSpy/AssemblyList.cs @@ -17,7 +17,9 @@ // DEALINGS IN THE SOFTWARE. using System; +using System.Collections; using System.Collections.Concurrent; +using System.Collections.Generic; using System.Collections.ObjectModel; using System.Collections.Specialized; using System.IO; @@ -143,5 +145,21 @@ namespace ICSharpCode.ILSpy assemblies.Remove(assembly); } } + + public void Sort(IComparer comparer) + { + Sort(0, int.MaxValue, comparer); + } + + public void Sort(int index, int count, IComparer comparer) + { + App.Current.Dispatcher.VerifyAccess(); + lock (assemblies) { + List list = new List(assemblies); + list.Sort(index, Math.Min(count, list.Count - index), comparer); + assemblies.Clear(); + assemblies.AddRange(list); + } + } } }