我正在尝试使用方法创建界面
void Import(int id, IDictionary<int, IDictionary<int, string>> items);
然后像这样调用这个方法
Dictionary<int, Dictionary<int, string>> items = viewModel.Items
.GroupBy(t => t.Number)
.ToDictionary(t => t.Key, t => t.ToDictionary(x => x.LanguageId, x => x.Translation));
Import(id, items);
我预计它应该可以工作,但出现错误
cannot convert from 'System.Collections.Generic.Dictionary<int, System.Collections.Generic.Dictionary<int, string>>' to 'System.Collections.Generic.IDictionary<int, System.Collections.Generic.IDictionary<int, string>>'
为什么我这里不能使用接口(interface)IDictionary?我应该手动转换吗?
最佳答案
更改您的分配类型。
Dictionary<int, IDictionary<int, string>> items = viewModel.Items
.GroupBy(t => t.Number)
.ToDictionary(t => t.Key, t => (IDictionary<int, string>) t.ToDictionary(x => x.LanguageId, x => x.Translation));
关于c# - 无法从 Dictionary 转换为 IDictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49325505/