1

我在我的 C# 程序中使用 DotNet.Highcharts。系列项目的数据元素需要一个object[]. 我使用的数据来自如下所示的 LINQ 方法。下面的代码还将double?[]a转换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;

有没有更好/更有效的方式object[]从 a中获取double?[]

4

3 回答 3

8

使用 LINQ 并double?转换为object

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

或返回一个数组

return data.Select(d=> (object)d).ToArray();
于 2015-04-28T15:05:07.283 回答
6

您可以Cast<object>()代替创建额外的中间数组:

 double?[] data = (from c in context.CTSeries
                     select c.CTDI).Take(1000)
     .Where(v => v.HasValue) // if needed
     .Cast<object>()
     .ToArray();
于 2015-04-28T15:04:58.433 回答
1
List<object> dataList = data.Select(d =>  d == null ? null : (object)d).ToList();
于 2015-04-28T15:09:30.027 回答