C# 配列(Array)とList型について
投稿者 魔界の仮面弁士  (社会人)
投稿日時
2022/8/2 10:40:21
> 配列を配列に変換
それはいったい、何のための変換ですか?
日本円を日本円に<両替>しているかのような違和感が…。
> 大量データを変換した場合
> どちらの変換を使用すべきですか?
重要なのは、「何のために変換したいのか」でしょうね。
まずは目的を明確にしてみてください。
たとえばデータの挿入や削除が頻繁になるのなら、配列ではなく List の方がずっと良いでしょう。
一方、固定データである場合は、列挙速度で言えば一次元配列に僅かに軍配があがります。
単に、IEnumerable<> を受け取るメソッドに渡すような時は、
そもそも変換自体が不要というケースもあります。
あるいは、加工無しでの部分抽出である場合は、C# 7.2 以降で Span<> を用いて、
元データのビューを取り出した方が、遥かに効率的となりえます。
https://docs.microsoft.com/ja-jp/dotnet/standard/memory-and-spans/
それはいったい、何のための変換ですか?
日本円を日本円に<両替>しているかのような違和感が…。
> 大量データを変換した場合
> どちらの変換を使用すべきですか?
重要なのは、「何のために変換したいのか」でしょうね。
まずは目的を明確にしてみてください。
たとえばデータの挿入や削除が頻繁になるのなら、配列ではなく List の方がずっと良いでしょう。
一方、固定データである場合は、列挙速度で言えば一次元配列に僅かに軍配があがります。
単に、IEnumerable<> を受け取るメソッドに渡すような時は、
そもそも変換自体が不要というケースもあります。
あるいは、加工無しでの部分抽出である場合は、C# 7.2 以降で Span<> を用いて、
元データのビューを取り出した方が、遥かに効率的となりえます。
https://docs.microsoft.com/ja-jp/dotnet/standard/memory-and-spans/
投稿者 ケンケン  (社会人)
投稿日時
2022/8/2 11:15:46
誤解を招く書き方でした。
変換は余計でした。
(;^ω^)
配列とlist型は同じ配列なので
余り考えないで使っていました。
色々を参考になりました。
ありがとうございます。
変換は余計でした。
(;^ω^)
配列とlist型は同じ配列なので
余り考えないで使っていました。
色々を参考になりました。
ありがとうございます。
投稿者 魔界の仮面弁士  (社会人)
投稿日時
2022/8/2 11:59:58
.NET の世界では、一次元配列は特別なものとして扱われていて、
効率よく扱えるようになっています。
多次元配列は扱い辛いので個人的にはお奨めしませんが。
参考情報としてこのあたりも。
https://neue.cc/2011/08/03_336.html
https://qiita.com/Zuishin/items/36a2cf3e12bbedbfb61e
https://shibuya24.info/entry/2017/05/02/000800
> 配列とlist型は同じ配列なので
list ではなく List ですけれどね。
C# を使うなら大文字小文字も正確に…! (VB なら良いですが)
でもって List<T> 型は、内部的には「一次元配列」でデータを保持していたりします。
.NET 版の List<T> 実装
https://source.dot.net/#System.Private.CoreLib/List.cs,cf7f4095e4de7646
.NET Framework 版 の List<T> 実装
https://referencesource.microsoft.com/#mscorlib/system/collections/generic/list.cs,cf7f4095e4de7646
効率よく扱えるようになっています。
多次元配列は扱い辛いので個人的にはお奨めしませんが。
参考情報としてこのあたりも。
https://neue.cc/2011/08/03_336.html
https://qiita.com/Zuishin/items/36a2cf3e12bbedbfb61e
https://shibuya24.info/entry/2017/05/02/000800
> 配列とlist型は同じ配列なので
list ではなく List ですけれどね。
C# を使うなら大文字小文字も正確に…! (VB なら良いですが)
でもって List<T> 型は、内部的には「一次元配列」でデータを保持していたりします。
.NET 版の List<T> 実装
https://source.dot.net/#System.Private.CoreLib/List.cs,cf7f4095e4de7646
.NET Framework 版 の List<T> 実装
https://referencesource.microsoft.com/#mscorlib/system/collections/generic/list.cs,cf7f4095e4de7646
投稿者 ケンケン  (社会人)
投稿日時
2022/8/2 13:22:40
C# はまだ初心者レベルです。
ネットで知識を吸収したと思います。
参考になりました。
ありがとうございます。
ネットで知識を吸収したと思います。
参考になりました。
ありがとうございます。
string[] name = new string[] { "東京", "品川", "新横浜", "名古屋", "京都", "新大阪" };
//配列を配列に変換
string[] tab = name.ToArray();
//配列をList型に変換
List<string> tab1 = name.ToList();
今は、6個のデータですがもし大量データを変換した場合
どちらの変換を使用すべきですか?
何方かわかる方、ご教授お願い致します。
いつもスッキリしません。