考虑:
float[] xPos = new float[pt3f.Count];
float[] yPos = new float[pt3f.Count];
float[] zPos = new float[pt3f.Count];
for (int i = 0; i < pt3f.Count; i++)
{
xPos[i] = pt3f[i].X;
yPos[i] = pt3f[i].Y;
zPos[i] = pt3f[i].Z;
}
我知道我可以在这里使用LINQ
var xPos = pt3f.Select(I => I.X).ToArray();
var yPos = pt3f.Select(I => I.Y).ToArray();
var zPos = pt3f.Select(I => I.Z).ToArray();
所以我的问题除了使用LINQ更清晰的代码外,是否有任何性能优势?
我认为在性能方面,使用单个for循环更快,我是对的,即3 Linqs最终会转换为3个循环。
答案 0 :(得分:3)
是的,LINQ示例将导致三个循环而不是第一个示例中的循环。但在大多数实际情况中,您不会注意到任何差异,至少在小阵列上没有。
除非您确实注意到性能问题,否则我个人更喜欢更易读的LINQ版本。