2014-09-25 17 views
-1

此代码,其初始化与两个硬编码值的阵列的组合工作完全正常:初始化阵列的与硬编码和生成的值

var db = new GoogleGraph { 
    cols = new ColInfo[] { 
     new ColInfo { id = "", label = "Date", pattern ="", type = "string" }, 
     new ColInfo { id = "", label = "Attendees", pattern ="", type = "number" }      
    }.ToList(), 
    rows = new List<DataPointSet>() 
}; 
db.cols.AddRange(listOfValues.Select(p => new ColInfo { id = "", label = p, type = "number" })); 

此代码,它试图增加一些动态生成的值不工作:

var db = new GoogleGraph { 
    cols = new ColInfo[] { 
     new ColInfo { id = "", label = "Date", pattern ="", type = "string" }, 
     new ColInfo { id = "", label = "Attendees", pattern ="", type = "number" }, 
     listOfValues.Select(p => new ColInfo { id = "", label = p, type = "number" })      
    }.ToList(), 
    rows = new List<DataPointSet>() 
}; 

我该如何正确实现上面的代码片段?

+0

当你试图编译它你得到任何错误? – 2014-09-25 04:51:16

+0

目前还不清楚你在问什么。 – LVBen 2014-09-25 04:51:51

+0

你的问题有点不清楚,但我想我明白了。我编辑了你的问题;如果我的意图不对,请告诉我。 – Blorgbeard 2014-09-25 05:15:51

回答

1

您不能将IEnumerable<T>传递给T[]这样的初始化程序。

你可以做你想做的通过将在自己的收藏硬编码的对象,然后连接动态的:

var db = new GoogleGraph { 
    cols = 
     new ColInfo[] { 
      new ColInfo { id = "", label = "Date", pattern ="", type = "string" }, 
      new ColInfo { id = "", label = "Attendees", pattern ="", type = "number" } 
     } 
     .Concat(listOfValues.Select(p => 
      new ColInfo { id = "", label = p, type = "number" }))      
     .ToList(), 
    rows = new List<DataPointSet>() 
};