1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【C#殴り書き知見忘備録】 listとArrayList

Posted at

はじめに

配列

参考記事

配列は連続した値を保持し、添え字を使って値の登録・変更を行うためのデータ構造です。
宣言した要素数を格納するのに必要な領域を、まとめてメモリ上に確保します。
image.png

リスト

参考記事

1次元配列とよく似ていますが、宣言時に空の変数が作成され、随時必要に応じて要素を追加していきます。
要素同士がチェーンで繋がっているようなイメージなので、途中でチェーンを切ったり繋ぎ変えることで、要素の挿入や削除が可能です。
image.png

ArrayListとList

ArrayListコレクション(.NET Frameworkの最初からある)のジェネリック版がListコレクションだ。どちらも主要なメソッドとして、Add/Remove/CopyTo/Sortメソッドなどを持っている。

  • ArrayListはなんでもぶちこめるけど出す時にキャストしないといけない。

ArrayListクラスの要素にはどんな型でも格納できるが、取り出すときには必ずキャストしなければならない(Visual BasicではOption StrictをOnにした場合)。

  • listは入れる型を決めるのでキャストする必要が無い、その代わりその型しか入れられない。

Listクラスの要素には特定の型しか格納できない代わりに、取り出すときのキャストは不要だ(ただし、インスタンスを作るときにObject型を指定すれば、ArrayListクラスと同じことになる)。

Listと配列

配列は固定長のデータを扱う時に適しているそうだ。

IReadonlyCollection

リードオンリーなコレクションという事なのでこれ引数にして使ってるメソッド内では変更されたりしないって事が分かるらしい、IEnumerableとの使い分け的なのも書いてある。ありがてえ。

コレクション関連難しい・・・。

何でもかんでもListを引数にするのよくないんだね、頑張って使い分けよう。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?