C#でのデータ管理と操作のための強力なツールである「コレクション」と「ジェネリック」について学びます。C#は、標準ライブラリに豊富なコレクション型を備えており、データの追加、削除、検索を容易にします。また、ジェネリック型を活用することで、型安全性とパフォーマンスの向上を図ることができます。
配列は、同じ型の複数のデータをまとめて管理できる基本的なデータ構造です。配列の特徴は、要素数が固定され、ランダムアクセスが可能である点です。
配列は宣言時に要素数を指定し、各要素にデフォルト値(数値型なら0、bool型ならfalse、参照型ならnull)が設定されます。
int[] numbers = new int[5];
配列を初期化しながら宣言することも可能です。
int[] numbers = { 1, 2, 3, 4, 5 };
配列はインデックスを使って要素にアクセスします。例えば、最初の要素にアクセスするには次のようにします。
int firstNumber = numbers[0];
numbers[1] = 10;
配列の長さを取得するには、Length
プロパティを使用します。
int length = numbers.Length;
C#では、多次元配列もサポートされています。2次元配列の例を示します。
int[,] matrix = new int[2, 3];
matrix[0, 0] = 1;
matrix[1, 2] = 5;
また、Length
プロパティを使用して全要素数を、GetLength(次元)
で特定次元の要素数を取得できます。
Listは、配列の要素数の固定に対して、動的に要素数を増減できる柔軟なコレクションです。ジェネリック型List<T>
は、要素の型をT
として指定することで、型安全性を確保しています。
Listは、List<T>
を用いて宣言されます。T
は任意の型を指定でき、要素の型が定義されるため、コンパイル時に型安全性が保証されます。
List<int> numbers = new List<int>();
Listに要素を追加するにはAdd
メソッドを使用します。Remove
メソッドは特定の値を持つ要素を削除し、RemoveAt
はインデックス指定で削除します。
numbers.Add(10);
numbers.Add(20);
numbers.Remove(10);
numbers.RemoveAt(0);
Listには、要素の存在を確認するContains
メソッド、要素のインデックスを取得するIndexOf
メソッドなどが備わっています。
bool exists = numbers.Contains(20);
int index = numbers.IndexOf(20);
foreach
文で要素を順に取り出して操作できます。
foreach (int number in numbers)
{
Console.WriteLine(number);
}
Dictionaryは、キーと値のペアでデータを管理するコレクションです。Dictionary<TKey, TValue>
としてジェネリック型で提供されており、キーと値の型を指定することで型安全なデータ管理が可能です。
以下のように、キーをstring
、値をint
に設定して宣言します。
Dictionary<string, int> students = new Dictionary<string, int>();
Add
メソッドでキーと値をペアで追加し、キーを指定して値を取得できます。
students.Add("Alice", 85);
int aliceScore = students["Alice"];
キーを指定して削除するRemove
メソッドや、キーの存在を確認するContainsKey
メソッドがあります。
students.Remove("Alice");
bool exists = students.ContainsKey("Bob");
foreach
でキーと値を順に取り出せます。
foreach (var student in students)
{
Console.WriteLine($"Name: {student.Key}, Score: {student.Value}");
}
ジェネリックは、型を指定することで、型安全性を確保しつつ効率的なコレクションを作成するための仕組みです。ジェネリックは特定の型に依存せず、さまざまなデータ型に対応する柔軟なコードを書くために使用されます。List<T>
やDictionary<TKey, TValue>
など、コレクション型のほとんどがジェネリック型で提供されています。
ジェネリックメソッドは、メソッドレベルで型を柔軟にするためのものです。T
を使用して、メソッドで任意の型を受け入れることができます。
public static void Print<T>(T item)
{
Console.WriteLine(item);
}
このメソッドは、任意の型を持つ引数に対応し、Print<int>(100);
やPrint<string>("Hello");
のように異なる型で呼び出せます。
ジェネリッククラスは、データ型に依存しないクラスを作成するためのものです。クラス宣言に型引数を追加して、インスタンス化時に特定の型を指定できます。
public class Box<T>
{
public T Value { get; set; }
public Box(T value)
{
Value = value;
}
}
このクラスは、任意の型のValue
プロパティを持ち、Box<int>
, Box<string>
などでインスタンス化できます。
以上が、C#のコレクションとジェネリックに関する基礎と実践的な使い方の解説です。コレクションはデータ管理の重要なツールであり、ジェネリック型はC#のコードを型安全で効率的にするために不可欠です。これらの知識を活かして、データを効果的に管理・操作できるようになることを目指しましょう。
プログラミングを始めたいと思っているそこのあなた、独学よりもプログラミングスクールが断然おすすめです!理由は簡単、続けやすさです。
独学でプログラミングを続けるのは、実はかなりハードルが高いんです。データによると、なんと87.5%もの学習者が途中で挫折しているとか。一方、各プログラミングスクールが公表しているデータによると、受講生の約95%が最後までやり抜いているとのこと。数字を見れば一目瞭然、プログラミングスクールの方が圧倒的に続けやすいんです。
プログラミングスクールには有料と無料のタイプがありますが、その違いは次の通りです:
どちらが自分に合っているか、よく考えて選ぶのが大事です。
プログラミング初心者でも学びやすいと評判の『FREEKS』、その特徴は以下の通り:
なんと、月会費のみで全カリキュラムが受け放題!Java、PHP、HTML/CSS、JavaScriptなど、多彩なプログラミング言語が学べるんです。しかも、AIが質問に自動で答えてくれるシステムも導入済み。
カリキュラムを終了した後には、Freeks経由で未経験者でも取り組める副業案件の受注が可能。実務を通じてスキルを磨き、市場価値の高いエンジニアへの道が開けます。
独学で悩むくらいなら、まずはプログラミングスクールをチェックしてみるのもアリかもしれませんよ!
↓ ↓ こちらをクリック ↓ ↓