8

私はList<string> strings使用を組み合わせようとしてstring.Join(",", strings)いますが、私が読んでいるものはすべて私がすべきだと言っています:

string.Join(",", strings.ToArray())

私が使用しなければならない/使用すべき特定の理由はあります.ToArray()か?

4

4 に答える 4

10

string.Join.NET 4 の時点で受け入れを開始しただけですIEnumerable<string>(実際には一般的なオーバーロード)。おそらく、.NET 3.5 以前を念頭に置いて記述されたコード (または命令) を見ています。オーバーロードを比較します。

于 2012-04-10T16:40:29.620 に答える
5

おそらく、あなたが読んでいるものはすべて、フレームワークの以前のバージョン用に書かれているからでしょう。このstring.Join(string, IEnumerable<string>)メソッドはバージョン 4 で追加されました。

于 2012-04-10T16:40:25.697 に答える
1

.ToArray() を使用する必要がある/使用する必要がある特定の理由はありますか?

その必要はありません。代わりに、を呼び出す必要のない現在のオーバーロードの前に存在していた古いコードを見ている可能性がありますToArray。受け入れる新しいオーバーロードは、IEnumerable<string>.NET 4.0 まで登場しませんでした。

于 2012-04-10T16:40:41.370 に答える
0

.Net v4 以降では .ToArray() を使用する必要はありません。v4 では IEnumerable が大きな役割を果たし、多くの拡張機能が追加されました。

したがって、v3.5 以下でコンパイルする必要がある場合は、.ToArray() を使用する必要がありますが、4.0 以降ではコードは正しいです。

于 2012-04-10T16:49:28.307 に答える