C# 使用硬编码和生成的值混合初始化数组

C# 使用硬编码和生成的值混合初始化数组,c#,collection-initializer,C#,Collection Initializer,此代码使用两个硬编码值初始化数组,效果非常好: var db = new GoogleGraph { cols = new ColInfo[] { new ColInfo { id = "", label = "Date", pattern ="", type = "string" }, new ColInfo { id = "", label = "Attendees", pattern ="", 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" }                       
    }.ToList(),
    rows = new List<DataPointSet>()
};
db.cols.AddRange(listOfValues.Select(p => new ColInfo { id = "", label = p, type = "number" }));
var db=new GoogleGraph{
cols=新的共信息[]{
新的ColInfo{id=”“,label=“Date”,pattern=“”,type=“string”},
新的ColInfo{id=”“,label=“与会者”,pattern=“”,type=“number”}
}.ToList(),
行=新列表()
};
db.cols.AddRange(listOfValues.Select(p=>newcolinfo{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>()
};
var db=new GoogleGraph{
cols=新的共信息[]{
新的ColInfo{id=”“,label=“Date”,pattern=“”,type=“string”},
新的ColInfo{id=”“,label=“Attendes”,pattern=“”,type=“number”},
选择(p=>newcolinfo{id=”“,label=p,type=“number”})
}.ToList(),
行=新列表()
};

如何正确实现上述代码段?

您不能像这样将
IEnumerable
传递给
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>()
};
var db=new GoogleGraph{
cols=
新的共信息[]{
新的ColInfo{id=”“,label=“Date”,pattern=“”,type=“string”},
新的ColInfo{id=”“,label=“与会者”,pattern=“”,type=“number”}
}
.Concat(listOfValues.Select(p=>
新的ColInfo{id=,label=p,type=“number”})
.ToList(),
行=新列表()
};

当您试图编译它时,是否有任何错误?不清楚您在问什么。您的问题有点不清楚,但我想我明白了。我已经编辑了你的问题;如果我误解了你的意图,请告诉我。