c# - c#中带有字典的泛型
问题描述
我想返回一个字典,但我可以拥有两种类型的键,所以我想在我的返回值中包含 T 。有任何想法吗?
like so
public static Dictionary<string, T> Read<T>(string dicValueType, string path)
{
if(dicValueType.Equals("User"))
{
Dictionary<string, User> usersDictionary =
JsonConvert.DeserializeObject<Dictionary<string, User>>
(File.ReadAllText(path));
return usersDictionary;
}
Dictionary<string, Column> boardDictionary =
JsonConvert.DeserializeObject<Dictionary<string, Column>>
(File.ReadAllText(path));
return boardDictionary;
}
我在“return usersDictionary;”这一行中遇到错误
解决方案
不是您想要将 JSON 对象反序列化为泛型。这将在没有所有if-else
检查的情况下完成:
public static Dictionary<string, T> Read<T>(string path)
=> JsonConvert.DeserializeObject<Dictionary<string, T>>(File.ReadAllText(path));
推荐阅读
- go - 如何从 pkcs#7 文件加载证书?
- python - 如何将大量 .WAV 文件转换为单个 .CSV 文件
- azure - Azure Monitor 日志 - 虚拟机规模集指标
- mongodb - MongoDB:如何查找日期格式为字符串的文档 2021-04-04 12:40:05
- splunk - 将数据获取到 Hyperledger Fabric 的 Splunk 应用程序的问题
- javascript - Css滚动捕捉在N处开始可见元素
- .net - 校长代表什么
- javascript - 反应安装问题,没有生成node_modules
- html - 当另一个特定的 NESTED 元素位于前面时,如何不选择一个元素?
- javascript - MongoDB在聚合的最后阶段获取字段总和