コガネブログ

平日更新を目標にUnityやC#などのゲーム開発アレコレを書いていきます

【C#】1つの文字列が複数の文字列のいずれかと等しいか判定する拡張メソッド

if (name == "チコリータ" || name == "ヒノアラシ" || name == "ワニノコ")
{
    // ...
}

1つの文字列を複数の文字列と比較して
いずれかの文字列と等しかった場合は処理を行うといったことをやるときに
上記の書き方は冗長なので

using System.Linq;

/// <summary>
/// string 型の拡張メソッドを管理するクラス
/// </summary>
public static partial class StringExtensions
{
    /// <summary>
    /// 文字列が指定されたいずれかの文字列と等しいかどうかを返します
    /// </summary>
    public static bool IsAny(this string self, params string[] values)
    {
        return values.Any(c => c == self);
    }
}

このような拡張メソッドを用意しておくことで

if (name.IsAny("チコリータ", "ヒノアラシ", "ワニノコ"))
{
    // ...
}

わかりやすく書けます