0

我正在使用 default MemoryCache,它可以很好地满足我的目的。但是该GetValues()方法返回IDictionary<string, object>

有没有一种快速的方法可以将其转换为IDictionary<string, MyType>?

4

3 回答 3

4

使用ToDictionary

ToDictionary(k => k.Key, k => (MyType)k.Value)
于 2012-10-16T08:53:41.510 回答
0

执行您自己的GetValues方法来调用原始方法。对于每个结果,将转换为第二个返回值(对象之一)并生成您自己的 casted IDictionary

于 2012-10-16T08:53:55.980 回答
0

这意味着您只能将类型的对象存储MyType在此缓存中。但如果是这种情况,你可以有一个包装方法:

public static IDictionary<string, MyType> GetValues(IEnumerable<string> keys)
{
    return MemoryCache.Default.GetValues(keys).ToDictionary(x => x.Key, x => x.Value as MyType);
}
于 2012-10-16T08:54:32.193 回答