文字列のリスト(または他のタイプの文字列を例として使用します)があるとします。非同期述語を使用してリストをフィルタリングする方法
と非同期述語、
- 述語は(リストを想定しての長さで、非同期述語が遅い)を順次実行するべきではありません。次の制約で、その述語によってリストをフィルタリングする最も簡単な方法は何
static Task<bool> IncludeString(string s) { ... }
フィルタリングされたリストを結果の
- 私は解決策を見つけたが、それはPREDの結果を持っている一時的なリストを作成する必要が
を発注保存すべき各エントリごとに暗号化し、それを使用してフィルタリングを行います。それだけで十分なエレガントさを感じません。ここにあります:
var includedIndices = await Task.WhenAll(fullList.Select(IncludeString));
var filteredList = fullList.Where((_, i) => includedIndices[i]);
単純なフレームワークコールでは可能なような気がしますが、見つけられませんでした。あなたが必要とするLinq
機能の独自の実装を作成することができ
しかし、ParallelLinqは複数の非同期操作を同時に待たせるのではなく、多くのスレッドを使用しますか?だからそれはうまくいかないと言っていますが、それは重い重さかもしれません。 –