我有一个要求,我正在运行for循环,以便将数据从excel递增加载到字典,然后将其传递给另一个字典。我正在使用以下代码:
var contr = new Dictionary<string, Dictionary<string, object>>();
contr.Add("Contributor" + (j + 1), contributor_dictionary);
item.Add(contributor_list + (j + 1), contr);
字典&#34; contr&#34;有以下格式的数据:
contributor:{
name: abc,
title: xyz }
当我将其添加到项目字典时,它将输出为:
contributor_list1:{
contributor1:{
name: abc,
title: xyz }
contributor_list2:{
contributor2:{
name: def,
title: mno } and so on..
而我希望它的格式为:
contributor_list:{
contributor1:{
name: abc,
title: xyz },
contributor2:{
name: def,
title: mno }
}
我怎样才能做到这一点?
答案 0 :(得分:1)
我有类似的情况,这就是我处理它的方式。 既然您知道数据的格式是什么,那么您可以使用像这样的结构
public struct ExcellData
{
public string Name{ get; set; }
public string Title{ get; set; }
}
然后您现在可以使用字典来保存每个Excel数据
public class MyDictionary : List<ExcellData>
{
public void Add(string key, string Name, string Title)
{
ExcellData val = new ExcellData();
val.Name= Name;
val.Title= Title;
this.Add(val);
}
}
然后在你的循环中你可以做到这一点
var cellData= new MyDictionary();
cellData.Add();
假设您的Excel数据在一行中有多个值,那么您的代码可能如下所示
public struct ExcellCells
{
public string Someoption { get; set; }
public string SomeOptionType { get; set; }
public string[] cellList { get; set; }
}
public class MyDictionary : List<ExcellCells>
{
public void Add(string key, string option, string[] xcell)
{
ExcellCells val = new ExcellCells();
val.SomeOptionType = key;
val.Someoption = option;
val.cellList = xcell;
this.Add(val);
}
}
希望这会有所帮助
答案 1 :(得分:0)
我认为你每次循环时都会在项目字典中添加贡献者。首先创建您的控制字典集合,然后将其添加到项目。
无需在项目dict键中添加索引。
简单地写:
item.Add(contributor_list,对照);
如果contributor_list是常量/固定字符串,则项目字典似乎是多余的,但是如果它改变那么它的确定。
答案 2 :(得分:0)
假设您以字典的形式从Excel接收数据,那么您需要以下内容:
public class Contributor
{
int ContributorID {get; set;} // optional
string name {get; set;}
string title {get; set;}
}
然后将Excel词典解压缩到Contributor
对象中,如果您需要一个键(上面没有使用它),请将该对象添加到词典中。
如果您不需要密钥,请使用Contributor