IEnumerable を持っているだけでは不十分な状況に遭遇することがよくあります。ただし、上記のメソッド呼び出しのパフォーマンスについてはわかりません。
私が本当に聞きたいのは:
ToList/ToArray のパフォーマンスは次のとおりです。
- IEnumerable を新しい配列/リストにコピーする O(n) 操作?
リストで linq 拡張メソッドを呼び出した場合、ToList を呼び出すと O(1) のパフォーマンスが得られますが、ToArray を呼び出すと O(n) になります (元のリストが配列の場合は逆になります)。
いくつかの魔法が起こり、パフォーマンスは O(1) ですか?
おそらく辞書にはO(n)ですよね?