を使用する場合ToList()
、考慮する必要があるパフォーマンスへの影響はありますか?
私はディレクトリからファイルを取得するためのクエリを作成していました、それはクエリです:
string[] imageArray = Directory.GetFiles(directory);
しかし、List<>
代わりに一緒に仕事をしたいので、私は中に入れることにしました...
List<string> imageList = Directory.GetFiles(directory).ToList();
それで、このような変換を行うことを決定するときに考慮すべき、または多数のファイルを処理するときにのみ考慮すべき、ある種のパフォーマンスへの影響がありますか?これは無視できる変換ですか?
Add
またはを呼び出す必要がない場合はRemove
、そのままIEnumerable<T>
(またはそれ以上var
)
EnumerateFiles
ではなくを呼び出す方が良いと思うGetFiles
ので、配列は1つだけ作成されます。
GetFiles(directory)
、それは現在.NETで実装されているので、ほとんどを実行しますnew List<string>(EnumerateFiles(directory)).ToArray()
。したがってGetFiles(directory).ToList()
、リストを作成し、そこから配列を作成してから、もう一度リストを作成します。2kayが言うように、あなたはEnumerateFiles(directory).ToList()
ここで行うことを好むはずです。
List<T>
の賛成でT[]
、もちろん、変換がない限り、それはコードが複数の論理/リード/保守性(行った場合た原因目立ち、私は再だろう、その場合にはパフォーマンスの問題を私が推測するそれをご覧ください)。