コガネブログ

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

【C#】Dictionary型の指定したキーに値が存在しない場合はデフォルト値を返す拡張メソッド

ソースコード

using System.Collections.Generic;

/// <summary>
/// Dictionary 型の拡張メソッドを管理するクラス
/// </summary>
public static class DictionaryExtensions
{
    /// <summary>
    /// 指定したキーに関連付けられている値を取得します。
    /// キーが存在しない場合は既定値を返します
    /// </summary>
    public static TValue GetOrDefault<TKey, TValue>(
        this Dictionary<TKey, TValue> self, 
        TKey key, 
        TValue defaultValue = default(TValue))
    {
        TValue value;
        return self.TryGetValue(key, out value) ? value : defaultValue;
    }
}

使い方

var dict = new Dictionary<int, string>
{
    { 1, "フシギダネ" }, 
    { 2, "フシギソウ" }, 
}
dict.GetOrDefault(3);              // null
dict.GetOrDefault(3, "フシギバナ"); // フシギバナ

関連記事