C# List Lambda with index, object 和 DoStuff() / to array

C# List Lambda with index, object and DoStuff() / to array

有什么方法可以简化这段代码吗?

double[] timeline = new double[dataList.Count];

for (int i = 0; i < dataList.Count; i++){
          timeline[i] = dataList[i].position;
}

return timeline;

第一个想法:

new double[datalist.ToArray("lambda which selects all .position attributes") <- is this possible?

第二个想法:

datList.Select((x, i) => timeline[i] = x)

有些东西 link 但这不起作用...我用谷歌搜索了很多,找不到任何解决方案。

我想简化它,因为我喜欢 lamda 表达式,我想了解更多关于它们的信息。

您可以简单地使用投影(即 Select LINQ 方法):

IEnumerable<double> timeLine = dataList.Select(dl => dl.position);

如果需要转成数组,直接使用ToArray方法即可

除非我在这里遗漏了一些明显的东西,否则为什么不简单地使用 Select and ToArray

double[] timeline = dataList.Select(d => d.position).ToArray();