C# 如何铸造IDictionary<;字符串,对象>;到IDictionary<;字符串,MyType>;

C# 如何铸造IDictionary<;字符串,对象>;到IDictionary<;字符串,MyType>;,c#,casting,idictionary,memorycache,C#,Casting,Idictionary,Memorycache,我使用的是默认的MemoryCache,就我的目的而言,它工作得很好。但是GetValues()方法返回IDictionary 有没有一种快速的方法可以将其转换为IDictionary?使用: 使用: 执行自己的GetValues方法调用原始方法。对于每个结果,对第二个返回值(对象值)执行强制转换,并生成您自己的强制转换IDictionary执行调用原始值的GetValues方法。对于每个结果,对第二个返回值(对象值)执行强制转换,并生成您自己的强制转换IDictionary这意味着您只能在此缓

我使用的是默认的
MemoryCache
,就我的目的而言,它工作得很好。但是
GetValues()
方法返回
IDictionary

有没有一种快速的方法可以将其转换为
IDictionary

使用:

使用:


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

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

这意味着您只能在此缓存中存储类型为
MyType
的对象。但如果是这种情况,您可以使用包装器方法:

public static IDictionary<string, MyType> GetValues(IEnumerable<string> keys)
{
    return MemoryCache.Default.GetValues(keys).ToDictionary(x => x.Key, x => x.Value as MyType);
}
公共静态IDictionary GetValues(IEnumerable键)
{
返回MemoryCache.Default.GetValues(Key).ToDictionary(x=>x.Key,x=>x.Value作为MyType);
}

这意味着您只能在此缓存中存储类型为
MyType
的对象。但如果是这种情况,您可以使用包装器方法:

public static IDictionary<string, MyType> GetValues(IEnumerable<string> keys)
{
    return MemoryCache.Default.GetValues(keys).ToDictionary(x => x.Key, x => x.Value as MyType);
}
公共静态IDictionary GetValues(IEnumerable键)
{
返回MemoryCache.Default.GetValues(Key).ToDictionary(x=>x.Key,x=>x.Value作为MyType);
}

DOH!非常简单……与通用方法配合使用,每次都能准确返回我想要的内容。@BlueChippy,记住标记答案。这对其他人也有帮助!非常简单……与通用方法配合使用,每次都能准确返回我想要的内容。@BlueChippy,记住标记答案。这也将帮助其他人。