KeyValuePair 構造体には読み取り専用のプロパティ (Key と Value) があるため、それを置き換えるためにカスタム クラスを作成しました。
public class XPair<T, U>
{
// members
private KeyValuePair<T, U> _pair;
// constructors
public XPair()
{
_pair = new KeyValuePair<T, U>();
}
public XPair(KeyValuePair<T, U> pair)
{
_pair = pair;
}
// methods
public KeyValuePair<T, U> pair
{
get { return _pair; }
set { _pair = value; }
}
public T key
{
get { return _pair.Key; }
set { _pair = new KeyValuePair<T, U>(value, _pair.Value); }
}
public U value
{
get { return _pair.Value; }
set { _pair = new KeyValuePair<T, U>(_pair.Key, value); }
}
}
このクラスは Dictionary での "foreach" の使用にも適用できますか? 例:
Dictionary<String, Object> dictionary = fillDictionaryWithData();
foreach(XPair<String, Object> pair in dictionary) {
// do stuff here
}