はじめに
プログラミングにおいて、データ構造は非常に重要な概念です。C#には、データを格納し操作するための基本的な構造として配列とリストが用意されています。これらは、プログラムでのデータの管理と操作を効率化するために使用されます。本記事では、C#における配列とリストの基本的な操作方法について詳しく解説し、それぞれの使い方を実例を交えて紹介します。
配列の基本
配列の宣言と初期化
配列は、同じデータ型の要素を固定サイズで格納するデータ構造です。配列を宣言するには、データ型の後に角括弧 [] を付けます。
int[] numbers;
配列を初期化するには、new キーワードを使い、配列のサイズを指定します。
numbers = new int[5]; // 5つの整数を格納できる配列を作成
宣言と初期化を同時に行うこともできます。
int[] numbers = { 1, 2, 3, 4, 5 };
配列の操作
配列の要素には、インデックスを使用してアクセスします。インデックスは0から始まります。
int firstNumber = numbers[0]; // 最初の要素を取得
numbers[1] = 10; // 2番目の要素を変更
配列の繰り返し処理
配列の各要素を処理するには、for ループまたは foreach ループを使用します。
for (int i = 0; i < numbers.Length; i++)
{
Console.WriteLine(numbers[i]);
}
foreach (int number in numbers)
{
Console.WriteLine(number);
}
リストの基本
リストの宣言と初期化
リストは、動的にサイズが変更可能なデータ構造です。C#では、List<T> クラスを使用してリストを実装します。リストを使用するには、System.Collections.Generic 名前空間をインクルードする必要があります。
using System.Collections.Generic;
List<int> numbers = new List<int>();
リストを初期化する際に、初期値を設定することもできます。
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
リストの操作
リストには、要素の追加、削除、挿入などの多くの操作が可能です。
numbers.Add(6); // 要素を追加
numbers.Remove(2); // 特定の要素を削除
numbers.Insert(1, 10); // 特定の位置に要素を挿入
リストの繰り返し処理
リストの各要素を処理するには、配列と同様に for ループや foreach ループを使用します。
for (int i = 0; i < numbers.Count; i++)
{
Console.WriteLine(numbers[i]);
}
foreach (int number in numbers)
{
Console.WriteLine(number);
}
配列とリストの使い分け
配列の利点と用途
配列は固定サイズであるため、サイズが事前にわかっている場合や、サイズが変更されない場合に適しています。また、配列はメモリ効率が良く、高速なアクセスが可能です。
リストの利点と用途
リストは動的にサイズを変更できるため、要素の追加や削除が頻繁に行われる場合に適しています。また、リストは多くの便利なメソッドを提供しており、柔軟性に優れています。
配列とリストのパフォーマンス比較
配列はメモリ効率が良く、要素へのアクセスが高速ですが、サイズの変更ができないという制約があります。一方、リストはサイズの変更が自由で、使いやすいメソッドを提供していますが、メモリ使用量が増える場合があります。これらの特性を理解し、適切なデータ構造を選択することが重要です。
実用例
学生名簿の管理
配列とリストの実用例として、学生名簿の管理を考えてみましょう。
配列を使用した例
string[] students = new string[3];
students[0] = "Alice";
students[1] = "Bob";
students[2] = "Charlie";
foreach (string student in students)
{
Console.WriteLine(student);
}
リストを使用した例
List<string> students = new List<string>();
students.Add("Alice");
students.Add("Bob");
students.Add("Charlie");
foreach (string student in students)
{
Console.WriteLine(student);
}
ファイルの行の読み込み
ファイルから読み込んだデータを格納する場合、リストを使用すると便利です。
using System;
using System.Collections.Generic;
using System.IO;
List<string> lines = new List<string>();
using (StreamReader sr = new StreamReader("example.txt"))
{
string line;
while ((line = sr.ReadLine()) != null)
{
lines.Add(line);
}
}
foreach (string line in lines)
{
Console.WriteLine(line);
}
まとめ
C#における配列とリストは、データを格納し操作するための基本的なデータ構造です。配列は固定サイズのデータ構造であり、リストは動的にサイズが変更可能なデータ構造です。それぞれの利点と用途を理解し、適切な状況で適切なデータ構造を選択することが重要です。この記事で紹介した基本操作と実用例を参考に、C#の配列とリストの使用方法をマスターし、効果的なプログラムを作成しましょう。

