From a1c9488c6ceec129eda9520275eb6800add535c6 Mon Sep 17 00:00:00 2001 From: Wendell Jones Date: Fri, 6 Mar 2026 18:08:53 -0500 Subject: [PATCH] Fix library ordering - use ID-based lookup for reliable alphabetical sorting --- Emby.Server.Implementations/Library/UserViewManager.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Emby.Server.Implementations/Library/UserViewManager.cs b/Emby.Server.Implementations/Library/UserViewManager.cs index e717d2b0..9ea377a7 100644 --- a/Emby.Server.Implementations/Library/UserViewManager.cs +++ b/Emby.Server.Implementations/Library/UserViewManager.cs @@ -145,6 +145,11 @@ namespace Emby.Server.Implementations.Library var sorted = _libraryManager.Sort(list, user, new[] { ItemSortBy.SortName }, SortOrder.Ascending).ToList(); var orders = user.GetPreferenceValues(PreferenceKind.OrderedViews); + // Create a lookup dictionary for efficient and reliable ordering + var sortedIndexLookup = sorted + .Select((item, index) => new { item, index }) + .ToDictionary(x => x.item.Id, x => x.index); + return list .OrderBy(i => { @@ -158,7 +163,7 @@ namespace Emby.Server.Implementations.Library return index == -1 ? int.MaxValue : index; }) - .ThenBy(sorted.IndexOf) + .ThenBy(i => sortedIndexLookup.TryGetValue(i.Id, out var sortIndex) ? sortIndex : int.MaxValue) .ThenBy(i => i.SortName) .ToArray(); }