我找了一个很好的数据结构的表看起来就像这样:C#寻找用于JSON数据的灵活数据结构
Name | ID | Time | A3 | A2 | D6 | L4 | H1 | ...
Peter 01 11:01 1 4 8 1 ...
James 02 11:37 7 5 2 2 ...
....
的名称,ID和时间值的“手动”给予我的工具,所有列之后(“A3”,“A2”,...)从一个JSON字符串来像
{"A3":"7","D6":"5",...}
我的问题IST,这些JSON值可以有任何名字,我就不说了知道哪些人会产生哪些值(样本中,詹姆斯没有为A2的值)。
哪种类型/结构最适合存储这些变量组合?
当然应该是“易”,以增加新的线路,如果新的价值观“到达”。而且我也希望以后这种结构写入到CSV,但在这里,这不是问题。
我尝试了很多,但是没有设法创建任何易于处理的东西。
在此先感谢!
编辑:我终于用两个答案的组合:
public class ResultData
{
public string currentName { get; set; }
public string currentID { get; set; }
public DateTime currentTimestamp { get; set; }
public DataTable results { get; set; }
public ResultData()
{
results = new DataTable();
// must have columns
results.Columns.Add("Name", typeof(string));
results.Columns.Add("ID", typeof(string));
results.Columns.Add("Timestamp", typeof(DateTime));
}
public void AddResult(Dictionary<string, string> resultVars)
{
// TODO: check if person is already in list
DataRow dr = results.NewRow();
// add basics
dr["Name"] = currentName;
dr["ID"] = currentID;
dr["Timestamp"] = currentTimestamp;
// check columns
foreach (var varName in resultVars)
{
// add column if needed
if (!results.Columns.Contains(varName.Key))
{
results.Columns.Add(varName.Key);
}
// add values
dr[varName.Key] = varName.Value;
}
//finally add row
results.Rows.Add(dr);
}
}
工作对我很好! :-)