system.collectionsとは?初心者が知っておくべき基礎と使い方ガイド共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
system.collectionsとは?初心者が知っておくべき基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)


system.collectionsとは?

system.collectionsは .NET の 名前空間 の一つで、データを集めて順番に扱うための道具をまとめた集合です。ここには 非ジェネリック なコレクションが中心で、ArrayList や Hashtable、Stack、Queue などが含まれます。

「非ジェネリック」とは、格納するデータの型を事前に固定せず、後から型を変換して使うこともあり得るという意味です。現在の新しいコードでは、型の安全性を高める ジェネリックコレクション を提供する System.Collections.Generic を使うのが主流です。

代表的なクラス

クラス用途特徴
ArrayList要素を動的に追加できる配列型を問わず格納できるが、必要に応じてキャストが必要。型安全ではない。
Hashtableキーと値のペアでデータを管理高速な検索が強み。ただしキーの順序は保証されず、型安全ではない。
Stack後入れ先出しのデータ構造最後に入れた要素が最初に取り出される。
Queue先入れ先出しのデータ構造最初に入れた要素が最初に取り出される。

ジェネリックコレクションとの違い

ジェネリックコレクションは System.Collections.Generic にあり、List<T>Dictionary<K, V> のように格納するデータの型を事前に決めます。これにより 型安全 が向上し、実行時の型変換が減ります。

現代のコードでは List<T>Dictionary<K, V> のようなクラスを使うのが一般的です。とはいえ、古いプロジェクトを読むときは System.Collections が登場することもあります。場合によっては互換性のため non generic を使うこともあります。

使い方のコツ

ポイント1:新しいコードでは可能ならジェネリックコレクションを使う
ポイント2:容量を事前に見積もることでパフォーマンスを安定させる
ポイント3:データの型を明確にする設計を心がける

最後に、system.collections は過去の技術と現在の新しい選択肢をつなぐ橋渡しのような存在です。基本を知っておくと、他の言語やフレームワークでコレクションを扱うときの考え方が分かりやすくなります。


system.collectionsの同意語

System.Collections
.NET におけるコレクション(配列・リスト・ハッシュテーブルなど)を扱う基本的な名前空間。
System.Collections 名前空間
C#/.NET でコレクション機能を集約して提供する公式の名前空間。
.NET の非ジェネリックコレクション
System.Collections が提供する、ジェネリックでないコレクションの総称。
非ジェネリックコレクション API
ArrayList や Hashtable など、ジェネリック未対応のコレクションを操作する API の集まり。
非ジェネリックコレクション
型を object として扱うコレクションの総称。型安全性は低めになる点に注意。
C# 非ジェネリックコレクション
C# で使われる非ジェネリックコレクションのこと。
コレクション名前空間
コレクション系をまとめた名前空間の意を含む表現。System.Collections の別名として使われることも。
旧式コレクション API
現在はジェネリックが主流ですが、古い非ジェネリックの API を指す言い換え表現。
コレクション系基本名前空間
コレクションの基本機能を提供する名前空間という意味の表現。System.Collections を指すことが多い。

system.collectionsの対義語・反対語

単一値
一つの値だけを表すデータ。複数要素を持つコレクションとは逆の概念として使えます。
カラー
数値・文字・真偽値など、1つの値で表されるデータ。コレクションの対義語的モノとして想定されます。
非コレクションデータ
データが集合としての複数要素を持たない状態。コレクションの反対のイメージです。
プリミティブデータ
整数・浮動小数点数・文字・真偽値など、基本的で単独で扱われるデータ型。コレクションの対義語として捉えられることがあります。
非配列データ
配列やリストといったコレクション構造に含まれない単純データ。
集合なしデータ
要素を集約した集合として扱わないデータ。

system.collectionsの共起語

List
System.Collections.Generic に属する可変長の動的配列コレクション。要素を順序付きで格納し、インデックスでアクセス・追加・削除が可能。
Dictionary
キーと値のペアを高速に格納・検索できるハッシュベースのコレクション。キーは一意で、値には任意の型を使える。
LinkedList
双方向連結リスト。ノードの追加・削除を任意の位置で O(1) で行える。
Queue
先入れ先出しのキュー。順番を保って要素を取り出す用途に適している。
Stack
後入れ先出しのスタック。最後に追加した要素を先に取り出す。
HashSet
重複を許さず、存在確認が高速な集合コレクション。
ArrayList
System.Collections の非ジェネリックな動的配列。古いコードで使われるが、現在は List が推奨される。
ReadOnlyCollection
元のコレクションを読み取り専用にラップするコレクション。書き換えを防ぐ用途に使う。
IList
ジェネリックなリストの基本インターフェース。要素の挿入・削除・インデックス操作を提供。
ICollection
ジェネリックなコレクションの基本インターフェース。Count、Add、Remove、CopyTo などを提供。
IEnumerable
列挙可能なコレクション。foreach での走査を可能にする基本要件。
IEnumerator
列挙子。MoveNext と Current でコレクションを走査する状態を保持。
IReadOnlyList
読み取り専用のリスト。インデックスで要素にアクセスできるが変更は不可。
IReadOnlyCollection
読み取り専用のコレクション。要素数の取得をサポート
IDictionary
キーと値のペアを扱うコレクションの基本インターフェース
ICollection
非ジェネリックなコレクションの基本インターフェース。
IList
非ジェネリックなリストの基本インターフェース。
IDictionary
非ジェネリックな辞の基本インターフェース。
IEnumerable
非ジェネリックな列挙可能コレクション。
System.Collections.Concurrent
スレッドセーフなコレクションを提供する名前空間。
ConcurrentDictionary
複数スレッドからの同時アクセスを安全に行えるスレッド安全なディクショナリ
ConcurrentQueue
スレッドセーフな先入れ先出しキュー。
ConcurrentStack
スレッドセーフな後入れ先出しスタック。
ConcurrentBag
スレッドセーフな要素のカゴのようなコレクション。
System.Collections.ObjectModel
コレクション型の実装とラップ機能を提供する名前空間。
ObservableCollection
変更を通知するコレクション。データバインディングに便利。
ReadOnlyObservableCollection
ObservableCollection の読み取り専用ビュー。
Collection
System.Collections.ObjectModel にある、基本的なコレクション実装。
System.Collections.Specialized
StringCollection や NotifyCollectionChanged などの特殊コレクションを提供する名前空間。
StringCollection
System.Collections.Specialized にある、文字列を格納するコレクション。
Array
要素数が固定で、サイズ変更はできない基本的な配列型。
Enumerable
Linq の Enumerable クラスと拡張メソッド群。System.Linq 名前空間と共に使われることが多い。

system.collectionsの関連用語

System.Collections
非ジェネリックコレクションを提供する基本的な名前空間。代表例には ArrayList、Hashtable、Queue、Stack、BitArray などが含まれ、古いコードや互換性のために使われることがありますが、現代の推奨はジェネリックコレクションを使うことです。
System.Collections.Generic
ジェネリックコレクションの基本となる名前空間。List、Dictionary、LinkedList、HashSet、Queue、Stack など、型を指定して安全・高速にコレクションを扱えます。
System.Collections.ObjectModel
変更通知付きコレクションや読み取り専用コレクションを提供する名前空間。ObservableCollection、ReadOnlyCollection などが代表例です。
System.Collections.Specialized
名称値コレクションや特殊なコレクション、通知機能関連を提供する名前空間。NameValueCollection、StringCollection、HybridDictionary、ListDictionary、NotifyCollectionChangedEventArgs などを含みます。
System.Collections.BitArray
ビットの集合を管理するコレクション。0/1 の値を効率的に扱え、フラグ管理などに使われます。
System.Collections.IEnumerable
IEnumerable は「列挙可能」なコレクションの基本インタフェース。foreach での反復処理を可能にします。
System.Collections.IEnumerator
IEnumerable の反復子インタフェース。現在の要素を取得したり次へ進めたりします。
System.Collections.IList
非ジェネリックのリストインタフェース。要素の追加、削除、挿入などの基本操作を定義します。
System.Collections.ICollection
コレクションの基本機能を表すインタフェース。Count、CopyTo、IsSynchronized などを提供します。
System.Collections.IDictionary
非ジェネリックの辞書インタフェース。キーと値のペアを扱います。
System.Collections.Hashtable
非ジェネリックのハッシュテーブル実装。キーのハッシュ値で高速検索します。
System.Collections.ArrayList
非ジェネリックの動的配列。要素追加・削除は簡単ですが boxing が起きやすく、現代コードでは避けられがちです。
System.Collections.Queue
非ジェネリックの先入れ先出しキュー。要素を順序通りに取り出します。
System.Collections.Stack
非ジェネリックのスタック。後入れ先出しで要素を取り出します。
System.Collections.DictionaryEntry
非ジェネリック辞書の1要素を表す値。Hashtable などで々のエントリを表現します。
System.Collections.Specialized.StringCollection
文字列だけを格納するコレクション。比較的軽量で文字列操作に向きます。
System.Collections.Specialized.NameValueCollection
キーに対して複数の値を保持できるコレクション。HTTP ヘッダやクエリ文字列の取り扱いなどで利用されます。
System.Collections.Specialized.HybridDictionary
キーの数が少ない場合は ListDictionary を、要素が増えたら Hashtable を使うように動的に振る舞う辞書的コレクション。
System.Collections.Specialized.ListDictionary
少数の要素向けの軽量辞書。小規模データで高速な動作を狙います。
System.Collections.Specialized.BitVector32
32ビットのビット集合を管理する軽量構造体。フラグを効率的に格納します。
System.Collections.Concurrent
スレッドセーフかつ並列処理に適したコレクションを提供する名前空間。ConcurrentDictionary、ConcurrentQueue、ConcurrentBag、ConcurrentStack、BlockingCollection などがあります。
System.Collections.Concurrent.ConcurrentDictionary
高速でスレッドセーフな辞書。複数スレッドからの同時アクセスでも安全に利用できます。
System.Collections.Generic.IList
ジェネリックリストインタフェース。インデックス付きの要素操作を定義します。
System.Collections.Generic.ICollection
ジェネリック коллек션 の基本操作を定義するインタフェース。Count などを提供します。
System.Collections.Generic.IEnumerable
反復処理可能なジェネリックコレクションの最も基本的なインタフェース。
System.Collections.Generic.IReadOnlyList
読み取り専用のリストインタフェース。インデックスで要素を取得できます。
System.Collections.Generic.IReadOnlyCollection
読み取り専用のコレクションインタフェース。要素数を取得できます。
System.Collections.Generic.List
ジェネリックの動的配列。要素の追加・挿入・削除が柔軟に行え、性能と安全性のバランスが良い選択肢です。
System.Collections.Generic.Dictionary
キーと値のペアを高速に検索できるハッシュマップ。適切なキー型を選ぶと大幅に高速化します。
System.Collections.Generic.SortedDictionary
キーの順序を維持して格納する辞書。挿入時にソートを保ちたい場合に便利です。
System.Collections.Generic.SortedSet
要素の重複を許さず、ソート済みの集合。集合演算にも向きます。
System.Collections.Generic.LinkedList
双方向連結リスト。任意の位置での挿入・削除が高速です。
System.Collections.Generic.Stack
ジェネリックのスタック。Push/Pop で後入れ先出しを実現します。
System.Collections.Generic.Queue
ジェネリックのキュー。Enqueue/Dequeue で先入れ先出しを実現します。
System.Collections.Generic.HashSet
重複を許さず、存在確認が O(1) で高速。集合の演算にも強力です。

system.collectionsのおすすめ参考サイト


インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
16560viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2938viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
1190viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1180viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
1052viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
1039viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
1028viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
980viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
874viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
872viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
816viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
814viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
809viws
xlsmとは?初心者でも分かるExcelのマクロ付きファイルの基本共起語・同意語・対義語も併せて解説!
743viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
721viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
695viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
624viws
countifとは?初心者でもすぐ使える基本と応用ガイド共起語・同意語・対義語も併せて解説!
613viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
604viws
googleドキュメントとは?初心者が今日から使いこなす基本ガイド共起語・同意語・対義語も併せて解説!
546viws

新着記事

インターネット・コンピュータの関連記事