簡潔な答え:
このコードがプロジェクトに対して機能的に正しく、プロファイラーの問題であることが証明されていない場合は、変更しないでください。遅いことが証明されるまで、機能的に正しいソリューションを使用し続けます。
長い答え:
この特定のコードがどれだけ速いか遅いかは、多くの要因によって異なります。その多くは、実行している特定のマシンに依存します (たとえば、ハード ドライブの速度)。ファイルシステムだけが関係するコードを見ると、「x は y より速い」と断言するのは非常に困難です。
この場合、私が実際にコメントできることは 1 つだけです。このメソッドの戻り値の型は、FileInfo 値の配列です。配列には連続したメモリが必要であり、配列が非常に大きいと、ヒープで断片化の問題が発生する可能性があります。読み込んでいるディレクトリが非常に大きい場合、ヒープの断片化が発生し、間接的にパフォーマンスの問題が発生する可能性があります。
それが問題であることが判明した場合は、FindFirstFile / FindNextFile に PInvoke して、一度に 1 つずつ取得できます。その結果、CPU サイクルが機能的に遅くなる可能性がありますが、メモリ負荷は少なくなります。
しかし、修正する前に、これらが問題であることを証明する必要があることを強調しなければなりません。