###前提・実現したいこと
こんにちは。いつもたいへんお世話になります。
本日はUWPについて困っていることがあります。
LINQを使って高速に検索したいです。
UWPで、下記のコードでファイルを検索しています。
C#
1 string addressuri = addresspath; 2 string keyword = keyword; 3 StorageFolder AddressFalder = await StorageFolder.GetFolderFromPathAsync(addressuri); 4 IReadOnlyList<StorageFile> fileList = 5 await AddressFalder.GetFilesAsync(); 6 StorageFile file = fileList.Where(f => f.Name.Contains(keyword)).FirstOrDefault();
###発生している問題・エラーメッセージ
しかし結構時間がかかります。
ファイル総数は約4200です。体感的には30秒以上かかっています。もっとかも。
これをできるだけ高速にしたいです。
GetFilesAsyncは、完了するとStorageFileを返すのですが、
完了しないうちに、ファイルの検索は更新日順にソートして最新のものから、FirstOrDefaltが見つかったら終了としたいです。
C#
1 var file2 = await AddressFalder.GetFilesAsync() 2 .Where(f => f.Name.Contains(keyword)).FirstOrDefault();
とすると、Whereのところで、IAsyncOperation<IReadOnlyList<StrageFile>>にはWhereがないとエラーになります。
お知恵をお貸しください。
###補足情報(言語/FW/ツール等のバージョンなど)
Windows10 Home 1709 64bit
Microsoft Visual Studio Community 2017
Version 15.1 (26403.3) Release
VisualStudio.15.Release/15.1.0+26403.3
Microsoft .NET Framework
Version 4.7.02556
インストールされているバージョン:Community
Visual C# 2017 00369-60000-00001-AA631
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/06 03:06
2018/02/06 04:16
2018/02/06 13:55