コガネブログ

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

【C#】Dictionary にキーが存在する場合にのみ関数を呼び出す拡張メソッド

using System;
using System.Collections.Generic;

public static class DictionaryExtensions
{
    /// <summary>
    /// 指定されたキーが格納されている場合は指定された関数を呼び出します
    /// </summary>
    public static void SafeCall<TKey, TValue>( 
        this Dictionary<TKey, TValue> self, 
        TKey                          key, 
        Action<TValue>                act
    )
    {
        if ( !self.ContainsKey( key ) )
        { 
            return; 
        }
        act( self[ key ] );
    }
}
var dict = new Dictionary<int, int>
{
    { 1, 1 }, 
    { 2, 2 }, 
    { 4, 4 }, 
};
dict.SafeCall( 1, c => Debug.Log( c ) );
dict.SafeCall( 3, c => Debug.Log( c ) );