简体   繁体   English

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

[英]Converting double?[ ] to object[ ] in c#

I am using DotNet.Highcharts in my C# program. 我在C#程序中使用DotNet.Highcharts。 The data element for series items requires an object[] . 系列项目的数据元素需要一个object[] The data I'm using is coming from a LINQ method as shown below. 我正在使用的数据来自LINQ方法,如下所示。 The code below also converts the double?[] to a List<object> then to the desired object[] . 下面的代码还将double?[]转换为List<object>然后转换为所需的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;

Is there a better/more efficient way of getting the object[] from a double?[] ? 是否有更好/更有效的方法来从double?[]中获取object[] double?[]

Use LINQ and cast double? 使用LINQ并double? to object object

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

or to return an array 或返回一个数组

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

You can just Cast<object>() instead of creating extra intermediate array: 您可以只Cast<object>()而不是创建额外的中间数组:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM