Skip to content

11. 車輪の再発明をしない

例えばリストを操作しようとして、処理を自前で実装してしまう人がいます。しかし、これはLINQを使えば簡単に書けてしまいます。このように、便利なライブラリの存在を知らずに車輪の再発明をしてしまうことは避けましょう。

csharp
// ❌ Bad: 自前で実装
List<Enemy> aliveEnemies = new();
foreach (var enemy in enemies)
{
    if (enemy.IsAlive)
    {
        aliveEnemies.Add(enemy);
    }
}

int totalDamage = 0;
foreach (var record in damageRecords)
{
    totalDamage += record.Amount;
}

Enemy strongest = null;
int maxAttack = int.MinValue;
foreach (var enemy in enemies)
{
    if (enemy.Attack > maxAttack)
    {
        maxAttack = enemy.Attack;
        strongest = enemy;
    }
}
csharp
// ✅ Good: LINQを使う
using System.Linq;

List<Enemy> aliveEnemies = enemies.Where(e => e.IsAlive).ToList();
int totalDamage = damageRecords.Sum(r => r.Amount);
Enemy strongest = enemies.OrderByDescending(e => e.Attack).First();

Unity設計講習会 資料公開ページ