配列処理

[C#] Listの使い方(具体例あり)

今回は、C#のListの使い方についてご紹介します。

Listとは

List<T> は、配列のように同じ型のデータを連続して管理しながらも、要素数を動的に増減できるコレクションです。

配列では宣言時に要素数を決める必要がありますが、List は追加や削除によって必要に応じて容量を自動的に拡張・縮小できます。

主な特徴は以下のとおりです。

  • 動的なサイズ変更:要素を追加・削除するたびに内部的に再確保が行われる
  • 型安全性:ジェネリック型であり、指定した型以外の要素は格納できない
  • 豊富な操作メソッド:要素の検索、並び替え、変換など便利なメソッドが用意されている

ここでは、List の作成から要素の追加・削除、検索、ソート、そして実用的な使い方まで幅広く解説します。

基本的な使い方

List の作成と初期化

List の作成は、new List<T>() で行います。

また、コレクション初期化子を使うと、宣言と同時に初期値を設定できます。

実行結果

(このコードでは実行時に特別な出力はありません)

要素の追加

要素を追加する方法として、AddInsert があります。

実行結果

10
15
20
30

要素の削除

RemoveRemoveAtClear を利用して、必要に応じた削除が行えます。

実行結果

Count: 0

要素へのアクセスとループ処理

インデックスを使ったアクセスや、Count プロパティによる要素数の取得、foreachfor ループでの処理が可能です。

実行結果

りんご
果物の数: 3
りんご
みかん
ぶどう

実用的な具体例

ここでは、List の検索やソート、配列との相互変換など、実務で役立つ操作を紹介します。

検索と並び替え

List には ContainsIndexOfFindSortReverse などのメソッドが用意されています。

実行結果

りんごがある? True
みかんの位置: 1
文字数が3文字以上の果物: りんご
100
92
88
75
68

配列との相互変換と LINQ の活用

ToArrayList<T>(配列) などを使い、配列との変換が可能です。

また、LINQ を用いると条件抽出や要素変換などを宣言的に記述できます。

実行結果

偶数の一覧:
2
4
6

注意点

List を使う際に知っておきたい注意点をいくつか挙げます。

  • 同時変更に注意:foreach ループ中に要素を追加・削除するとエラーが発生する場合があります
  • パフォーマンス:大量データの取り扱い時は、必要に応じた初期容量を設定すると効率的
  • 型安全性:List<T> は同じ型の要素を扱うため、異なる型を混在させる場合は要検討
  • LINQ の遅延評価:Where や Select は遅延評価されるため、複数回の実行を防ぐ場合は ToList() などで即時評価する

まとめ

C# の List<T> は、動的なサイズ変更や豊富なメソッドを備えた柔軟なコレクションです。

作成・追加・削除・検索・並び替えなど、多彩な操作をシンプルに実装できます。

注意点を押さえたうえで活用すると、より扱いやすく効率的なデータ管理が可能になります。