Allocation of Race[3]~Brown County,Total:~6866,Allocated~315,Not allocated~6551
Allocation of Age[3]~Brown County,Total:~6866,Allocated~315,Not allocated~6551
Allocation of Race[3]~Boone County,Total:~6866,Allocated~315,Not allocated~6551
Allocation of Age[3]~Boone County,Total:~6866,Allocated~315,Not allocated~6551
以上是我的词典键值对。
关键=种族分配[3]〜布朗县&& 值=总计:~6866,分配~315,未分配~6551
我正在尝试将这些值插入数据表
table.Columns.Add("Topic");
table.Columns.Add("County");
table.Columns.Add("Header");
table.Columns.Add("Value");
在我的键值对中,topic = Race的分配[3]&&县=布朗县&&标题=总计,已分配和未分配,值=其各自的值。
最初,我尝试使用
拆分密钥对 string[] Topic_County = key.Split('~');
所以Topic_County包括 [0] =种族分配[3] [1] =县名
foreach (string tc in Topic_County)
{
table.Rows.Add(tc);
}
当我使用foreach循环时,种族和县名的分配将出现在同一列中 如何在县列下添加县名,并在各自的位置添加其标题和值。
答案 0 :(得分:0)
如果您使用这样的简单类:
public class Datum
{
public string Topic = "";
public string County = "";
public int Allocated = 0;
public int NotAllocated = 0;
public int Total()
{
return Allocated + NotAllocated;
}
}
您可以使用字典,只需使用Topic属性和County属性作为键:
Dictionary<string, Datum> MyData = new Dictionary<string, Datum>();
Datum info = new Datum
{
Topic = "Allocation of Race[3]",
County = "Brown County",
Allocated = 315,
NotAllocated = 6551
};
MyData.Add(info.Topic + "-" + info.County, info);
虽然List可能也可以正常工作,但是使用LINQ,您可以按照您设置的任何条件提取您需要分组或排序的任何项目。
由于Total是一种方法,您不需要将其添加到字典中,只要您需要该值就将其称为Datum的成员。
您可以将数据添加到数据表中,如下所示:
DataTable table = new DataTable();
table.Columns.Add("Topic");
table.Columns.Add("County");
table.Columns.Add("Allocated");
table.Columns.Add("Not Allocated");
table.Columns.Add("Total");
foreach(Datum entry in MyData.Values)
{
DataRow NewDataRow = table.NewRow();
NewDataRow.ItemArray = new string[5]
{
entry.Topic,
entry.County,
entry.Allocated.ToString(),
entry.NotAllocated.ToString(),
entry.Total().ToString()
};
table.Rows.Add(NewDataRow);
}