我有IDictionary
声明:IDictionary<string, string> trace;
在其中我想保存一个由json反序列化返回的元素列表,实际上我这样做:
var obj = JsonConvert.DeserializeObject<List<RootObject>>(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不是一个好主意实现这个?
答案 0 :(得分:4)
看起来你最好使用专门的课程,如下所示:
print "<tr><td>$_<br/></td></tr>\n" for @fruitArray;
然后,对于APPLE|0
ORANGE|0
PEAR|1
GRAPE|0
TOMATO|1
中的每个值,使用/([|])\w+/
创建一个public class TraceInfo
{
public string Date { get; set; }
public string Type { get; set; }
public List<string> ContextItems { get; set; }
}
对象并设置其属性。
然后,您可以将它们存储在obj
或TraceInfo
中,您可以选择。