我遇到了一个我正面临的问题,我无法解决这个问题,因为我可以解决这个问题。我有两个List<decimals>
包含非常小的值,如0.0567和4.67890等等。然后我的第二个列表也是List<decimals>
,其中包含以毫秒为单位的纪元时间戳。示例:1472100900000,1472101200000,1472101500000等。有了这种数据,我想制作一个列表或类似的数组。 (即array[] : [[1472100900000, 0.0567], [1472101200000, 4.67890], [1472101500000, 3.568]]
)等等。然后最后把它扔进Highchart,它会产生一个漂亮的图形。
这是我已经尝试过的linq,但结果并不是我想要的结果,因为这些值并没有相继设置。
var combi2 = timeArray.SelectMany(x1 => valueArray, (x1, x2) => new[] { x1, x2 });
var combi3 = valueArray.SelectMany(x1 => timeArray, (x1, x2) => new { x1, x2 }).Select(x3 => new PerformanceGraphData { PerformanceTime = x3.x2.ToString(), PerformanceValue = x3.x1.ToString() });
我希望有人可以帮助我。如果需要更多信息,请不要犹豫。 谢谢你的阅读。
亲切的问候,
费尔南多
答案 0 :(得分:3)
您需要的是Zip
扩展方法。
timeArray.Zip(valueArray, (x1,y1) => new decimal[] {x1,y1}).ToArray();
答案 1 :(得分:0)
Linq的Zip方法就是你的方式:
var graphData = timeArray.Zip(valueArray,
(x, y) => new PerformanceGraphData
{
PerformanceTime = x.ToString(),
PerformanceValue = y.ToString()
}).ToArray();
Docs:
将指定的函数应用于两个对应的元素 序列,产生一系列结果。