2014-09-25 60 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>() 
};