在这个简单的案例中我应该坚持使用LINQ吗?

时间:2016-02-18 11:57:57

标签: linq

考虑:

            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个循环。

1 个答案:

答案 0 :(得分:3)

是的,LINQ示例将导致三个循环而不是第一个示例中的循环。但在大多数实际情况中,您不会注意到任何差异,至少在小阵列上没有。

除非您确实注意到性能问题,否则我个人更喜欢更易读的LINQ版本。