ソースコード
using System; using System.Collections.Generic; public static class DictionaryExtensions { /// <summary> /// 指定したキーを持つ値を削除します。 /// 削除前に指定された関数を呼び出します /// </summary> public static void Remove<TKey, TValue>( this Dictionary<TKey, TValue> self, TKey key, Action<TValue> act ) { if ( !self.ContainsKey( key ) ) { return; } act( self[ key ] ); self.Remove( key ); } }
使い方
var dict = new Dictionary<string, Character>(); ... dict.Remove( "王国兵士", c => c.Dispose() );