在c#中将double?[]转换为object []

phy*_*s90 1 c# linq highcharts dotnethighcharts

我在我的C#程序中使用DotNet.Highcharts.系列项的数据元素需要一个object[].我正在使用的数据来自LINQ方法,如下所示.下面的代码也将double?[]a 转换为a List<object>then 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;
Run Code Online (Sandbox Code Playgroud)

有没有得到更好/更有效的方式object[]double?[]

Hab*_*bib 6

使用LINQ并double?转换为object

List<object> dataList = data.Select(d => (object)d).ToList();
Run Code Online (Sandbox Code Playgroud)

或者返回一个数组

return data.Select(d=> (object)d).ToArray();
Run Code Online (Sandbox Code Playgroud)


Ale*_*kov 5

您可以Cast<object>()而不是创建额外的中间数组:

 double?[] data = (from c in context.CTSeries
                     select c.CTDI).Take(1000)
     .Where(v => v.HasValue) // if needed
     .Cast<object>()
     .ToArray();
Run Code Online (Sandbox Code Playgroud)