効率的なプログラムを書くためには、闇雲にコードを書くのではなく、以下の「型」に当てはめて考えるのが近道です。
- Class(クラス): データの「1件分」の形を決める
- Property(プロパティ): 項目を作り、データを保護する
- List<T>(リスト): 複数のデータをひとつにまとめる
- LINQ(リンク): 自由自在にデータを加工・抽出する
ステップ1:クラスを作る(データの設計図)
まずは、扱うデータの「最小単位」を定義します。例えば「商品情報」を扱うなら、1個の商品がどのような情報(名前、価格など)を持つべきかを決めます。
C#
public class Product
{
// ここに中身(プロパティ)を書いていく
}
ステップ2:プロパティで項目を作る(データの保護)
次に、クラスの中に具体的な項目を作ります。この時、単なる変数(フィールド)ではなく「プロパティ」を使うのがC#の鉄則です。これにより、不正な値が入るのを防ぐ「ガード」をかけることができます。
C#
public class Product
{
public string Name { get; set; } // 自動実装プロパティ
private int _price;
public int Price
{
get => _price;
set
{
// 0円未満の価格設定を禁止する(データの保護)
if (value < 0) _price = 0;
else _price = value;
}
}
}
ステップ3:List<T>で管理する(データの集積)
クラス(1件分)ができたら、それを複数まとめて扱いましょう。C#で最も使われるのがList<T>です。配列と違い、後から自由にデータを追加・削除できるのが最大のメリットです。
C#
// Productを入れるためのリストを作成
List<Product> productList = new List<Product>();
// データの追加
productList.Add(new Product { Name = "コーヒー", Price = 450 });
productList.Add(new Product { Name = "紅茶", Price = 400 });
productList.Add(new Product { Name = "高級メロンパン", Price = 1200 });
ステップ4:LINQで加工する(データの抽出)
溜まったデータから「特定の条件のものだけ探したい」「安い順に並べたい」といった要望を、わずか1行で叶えるのがLINQです。
using System.Linq; を追加するだけで、魔法のような操作が可能になります。
C#
// 500円以下の商品だけを抽出して、名前順に並べる
var cheapProducts = productList
.Where(p => p.Price <= 500) // 条件絞り込み
.OrderBy(p => p.Name) // 並べ替え
.ToList();
// 最高値をサクッと取得
int maxPrice = productList.Max(p => p.Price);
まとめ:このパターンはあらゆる開発で使える!
この「クラス → プロパティ → リスト → LINQ」という流れは、業務システム、Web開発、Unityでのゲーム制作など、あらゆるC#開発の土台となります。
このパターンをマスターすれば、複雑なデータ処理も驚くほどシンプルに記述できるようになります。ぜひ、今日から自分のコードに取り入れてみてください。

