C# c语言中带字典的泛型
我想返回一个字典,但是有两种类型的键可以使用,所以我想在返回值中包含T。有什么想法吗C# c语言中带字典的泛型,c#,dictionary,generics,C#,Dictionary,Generics,我想返回一个字典,但是有两种类型的键可以使用,所以我想在返回值中包含T。有什么想法吗 like so public static Dictionary<string, T> Read<T>(string dicValueType, string path) { if(dicValueType.Equals("User")) { Dictionary<string, User> usersDictionary =
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;
}
我在这一行中得到一个错误returnusersdictionary 并不是将JSON对象反序列化为泛型的全部。这将在不进行所有if-else检查的情况下完成:
当只有两个有效值时,不要将方法设为泛型,任何其他值只会使其中断。如果你想做两件事中的一件,那么有两种方法,并为每种情况打一个合适的方法。除了Servy所说的,你可以考虑一个类来保存一个值,并通过GETTER方法返回什么是适当的。但是没有办法按照我的意愿去做。今天有两种选择,明天可以500@somene看看这个,也许这会对你的情况有所帮助。dictionary.GetType是dictionary我如何比较它们?[字典看起来像这样:dictionary]@有人我不确定你的意思,最好用一个MCVE例子来回答一个新问题。啊,我想你在寻找dict.GetType==typeofDictionary
public static Dictionary<string, T> Read<T>(string path)
=> JsonConvert.DeserializeObject<Dictionary<string, T>>(File.ReadAllText(path));