如何在IDictionary中存储多个项目?
我有这个IDictionary
声明: IDictionary trace;
在里面我想保存一个json反序列化返回的元素列表,实际上我这样做:
var obj = JsonConvert.DeserializeObject<List>(responseText); foreach (var item in obj) { trace["date"] = item.trace.details.date; trace["type"] = item.trace.details.type; foreach (var trace in item.trace.context.context) { trace["context"] = JsonConvert.SerializeObject(trace); } }
现在这个代码运行良好,但只保存迭代的最后一项,这’因为当我遍历项目时, date, type etc...
被替换,但我希望存储项目不在每次新迭代中替换它。
如何用IDictionary
做到这一点?
请注意: trace.x
是反序列化json的类的名称。
进一步的问题 :使用IDictionary可能不是一个好主意实现这一点?
看起来你最好使用专门的课程,如下所示:
public class TraceInfo { public string Date { get; set; } public string Type { get; set; } public List ContextItems { get; set; } }
然后,对于obj
每个值,使用new TraceInfo()
创建一个TraceInfo
对象并设置其属性。
然后,您可以将它们存储在List
或Dictionary
,您可以选择它们。