私は持っていますDictionary<Predicate<double>, SomeEnum>
:
var dic = new Dictionary<Predicate<double>, SomeEnum>
{
{ (d) => d < 10, SomeEnum.Foo },
{ (d) => d > 90, SomeEnum.Bar }
};
私はこのようにそれに対して呼び出したいTryGetValue(K, out V)
:
dic.TryGetValue(99)
そして受け取る
SomeStruct.Bar
しかし、の最初のパラメータTryGetValue()
はPredicate<T>
、だけではありませんT
。どうすればやりたいことができますか?
汚い回避策しか見つかりませんでした:
var kpv = dic.FirstOrDefault(p => p.Key(99));
if (kpv.Key != null)
var result = kpv.Value;
他の方法はありますか?
または、私のアイデアを適切に実装する方法は?- キーを定数としてではなく、セグメントのように宣言します。