优化 C# 中的数组串联
在 C# 中组合数组是一项常见任务。 Concat
方法提供了一个简单的解决方案:
<code class="language-csharp">int[] x = { 1, 2, 3 }; int[] y = { 4, 5 }; int[] z = x.Concat(y).ToArray(); Debug.Assert(z.SequenceEqual(new int[] { 1, 2, 3, 4, 5 }));</code>
但是,随着数组的增大,Concat
的性能会明显下降(如“C# 中的数组串联”中所述,超过 10,000 个元素时性能会显着下降)。
更高性能的替代方案
为了提高效率,特别是对于大量阵列,手动方法提供了显着的优势。 这涉及创建一个正确大小的新数组并直接复制元素:
<code class="language-csharp">var z = new int[x.Length + y.Length]; x.CopyTo(z, 0); y.CopyTo(z, x.Length);</code>
此方法避免了 Concat
固有的开销,从而实现更快的串联,特别是对于大型数据集。 虽然稍微冗长一些,但性能的提升使其成为大规模数组操作的首选。
以上是如何在 C# 中高效地连接数组?的详细内容。更多信息请关注PHP中文网其他相关文章!