From c0f60e25bf481f05f88f220fec896e9b9e89fefd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=98=E9=9F=AC=20=E5=BC=A0?= Date: Wed, 27 Jan 2021 16:23:59 +0800 Subject: [PATCH] Use type matching to create result --- .../Search/QuickAccessLinks/QuickAccess.cs | 35 ++++++++----------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Search/QuickAccessLinks/QuickAccess.cs b/Plugins/Flow.Launcher.Plugin.Explorer/Search/QuickAccessLinks/QuickAccess.cs index e6ece2a73..270e8825a 100644 --- a/Plugins/Flow.Launcher.Plugin.Explorer/Search/QuickAccessLinks/QuickAccess.cs +++ b/Plugins/Flow.Launcher.Plugin.Explorer/Search/QuickAccessLinks/QuickAccess.cs @@ -26,32 +26,25 @@ namespace Flow.Launcher.Plugin.Explorer.Search.QuickAccessLinks .OrderBy(x => x.Type) .ThenBy(x => x.Nickname); - return queriedAccessLinks - .Where(x => x.Type == ResultType.Folder) - .Select(item => - resultManager.CreateFolderResult(item.Nickname, item.Path, item.Path, query)) - .Concat( - queriedAccessLinks - .Where(x => x.Type == ResultType.File) - .Select(item => - resultManager.CreateFileResult(item.Path, query))) - .ToList(); + return queriedAccessLinks.Select(l => l.Type switch + { + ResultType.Folder => resultManager.CreateFolderResult(l.Nickname, l.Path, l.Path, query), + ResultType.File => resultManager.CreateFileResult(l.Path, query), + _ => throw new ArgumentOutOfRangeException() + + }).ToList(); } internal List AccessLinkListAll(Query query, List accessLinks) => accessLinks .OrderBy(x => x.Type) .ThenBy(x => x.Nickname) - .Where(x => x.Type == ResultType.Folder) - .Select(item => - resultManager.CreateFolderResult(item.Nickname, item.Path, item.Path, query)) - .Concat( - accessLinks - .OrderBy(x => x.Type) - .ThenBy(x => x.Nickname) - .Where(x => x.Type == ResultType.File) - .Select(item => - resultManager.CreateFileResult(item.Path, query))) - .ToList(); + .Select(l => l.Type switch + { + ResultType.Folder => resultManager.CreateFolderResult(l.Nickname, l.Path, l.Path, query), + ResultType.File => resultManager.CreateFileResult(l.Path, query), + _ => throw new ArgumentOutOfRangeException() + + }).ToList(); } }