C# 2-5 データ管理の鉄板パターン:4つのステップ

効率的なプログラムを書くためには、闇雲にコードを書くのではなく、以下の「型」に当てはめて考えるのが近道です。

  1. Class(クラス): データの「1件分」の形を決める
  2. Property(プロパティ): 項目を作り、データを保護する
  3. List<T>(リスト): 複数のデータをひとつにまとめる
  4. 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#開発の土台となります。

このパターンをマスターすれば、複雑なデータ処理も驚くほどシンプルに記述できるようになります。ぜひ、今日から自分のコードに取り入れてみてください。