2015-04-28 51 views
0

我在C#程序中使用了DotNet.Highcharts。系列項目的數據元素需要object[]。我使用的數據來自LINQ方法,如下所示。下面的代碼還將double?[]轉換爲List<object>,然後轉換爲所需的object[]在c#中將double [?]轉換爲object []#

double?[] data = (from c in context.CTSeries 
       select c.CTDI).Take(1000).ToArray(); 

List<object> dataList = new List<object>(); 

foreach (double? ctdi in data) 
{ 
    dataList.Add(Convert.ChangeType(ctdi, typeof(Object))); 
} 

object[] dataArray = dataList.ToArray(); 
return dataArray; 

是否有從double?[]得到object[]更好/更有效的方式?

回答

5

使用LINQ和投double?object

List<object> dataList = data.Select(d => (object)d).ToList(); 

或返回數組

return data.Select(d=> (object)d).ToArray(); 
5

你可以只Cast<object>(),而不是創建額外的中間陣列:

double?[] data = (from c in context.CTSeries 
        select c.CTDI).Take(1000) 
    .Where(v => v.HasValue) // if needed 
    .Cast<object>() 
    .ToArray(); 
1
List<object> dataList = data.Select(d => d == null ? null : (object)d).ToList(); 
相關問題