【发布时间】:2020-10-26 19:12:16
【问题描述】:
我有以下锯齿状数组-
int[][] triangle =
{
new int[] { 3 },
new int[] { 7,4 },
new int[] { 2,4,6 },
new int[] { 8,5,9,3 }
};
然后我复制了它-
int[][] temporaryTriangle = new int[triangle.Length][];
Array.Copy(triangle, temporaryTriangle, triangle.Length);
我对副本的子数组进行了排序-
for (int i = 0; i < temporaryTriangle.Length; i++)
{
Array.Sort(temporaryTriangle[i]);
}
我发现源数组的子数组也被排序了! 我的问题是为什么会发生这种情况,我的意思是当我对副本的子数组进行排序时,为什么数组的子数组会排序?
用法:
foreach (var subarray in triangle)
Console.WriteLine(string.Join(" ", subarray));
foreach (var subarray in temporaryTriangle)
Console.WriteLine(string.Join(" ", subarray));
// Output:
// 3
// 4 7
// 2 4 6
// 3 5 8 9
// 3
// 4 7
// 2 4 6
// 3 5 8 9
我问的是什么问题而不是如何解决它。所以Extremely fast way to clone the values of a jagged array into a second array? 没有回答我的问题。
【问题讨论】:
-
@OlivierRogier 我的问题是为什么会发生这种情况,而不是如何解决。
标签: c# arrays sorting jagged-arrays