我正在为表格寻找一个好的数据结构:
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",...}
我的问题是,这些json值可以有任何名称,而且我不知道哪个人会生成哪些值(在示例中,James没有A2的值)。
哪种类/结构最适合存储这些变量?
当然,如果新值“到达”,添加新行应该“容易”。我还想稍后将这个结构写入csv,但这不是问题所在。
我用List<>进行了很多尝试和目录<>但没有设法创造任何易于处理的东西。
提前致谢!
编辑:我最终使用了两个答案的组合:
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);
}
}
对我来说工作正常! : - )
答案 0 :(得分:0)
您是否尝试过包含Dictionary属性的类?
create trigger record_after_insert after insert on A for each row
Begin
insert into B values (NEW.trigger_name, sysdate());
End;
答案 1 :(得分:0)
这是您在C#中找到的一种解决方案,
DataTable类存储数据的行和列。它是System.Data命名空间的一部分。我们添加,选择并迭代存储的数据。
使用DataTable的C#程序
using System;
using System.Data;
class Program
{
static void Main()
{
// Get the DataTable.
DataTable table = GetTable();
// ... Use the DataTable here with SQL.
}
/// <summary>
/// This example method generates a DataTable.
/// </summary>
static DataTable GetTable()
{
// Here we create a DataTable with four columns.
DataTable table = new DataTable();
table.Columns.Add("Dosage", typeof(int));
table.Columns.Add("Drug", typeof(string));
table.Columns.Add("Patient", typeof(string));
table.Columns.Add("Date", typeof(DateTime));
// Here we add five DataRows.
table.Rows.Add(25, "Indocin", "David", DateTime.Now);
table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
table.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);
return table;
}
}
另一个好处是Visual Studio可以帮助您查看数据,
尝试这一点,DataRow Class也有很多可能,它快速而简单,可以保存表数据。