public object find(Func f)
{
IDictionaryEnumerator en = m_map.GetEnumerator();
while (en.MoveNext())
{
object key = en.Key;
object val = en.Value;
if (f.call(val, key) == Boolean.True)
return val;
}
return null;
}