首页 » 网站推广 » phpclonearray技巧_运用DeepClone沿数组对角线翻转180度

phpclonearray技巧_运用DeepClone沿数组对角线翻转180度

访客 2024-12-06 0

扫一扫用手机浏览

文章目录 [+]

2

3

phpclonearray技巧_运用DeepClone沿数组对角线翻转180度

4

phpclonearray技巧_运用DeepClone沿数组对角线翻转180度
(图片来自网络侵删)

5

6

7

8

9

沿着对角线:1,5,9 翻转180度,变成如下数组:

1

4

7

2

5

8

3

6

9

思路: 利用一个中间临时数组,然后遍历临时数组,进行数组翻转;由于数组是引用类型,以是要clone一个新的数组,不能直接赋值,否则得出的结果不对。
用到了一个DeepClone深度克隆库,挺好用的。

代码如下:

static void Main(string[] args){ float[][] arr01 = new float[][] { new float[]{1,2,3}, new float[]{4,5,6}, new float[]{7,8,9} }; Console.WriteLine("翻转前:"); Console.WriteLine(getArrStr(arr01)); int len = arr01.Length; //你可以这样: //for (int i = 0; i < len; i++) //{ // temp[i] = new float[len]; // for (int j = 0; j < len; j++) // { // temp[i][j] = arr01[i][j]; // } //} //也可以这样 DeepClone库,深度克隆库 float[][] temp = arr01.DeepClone(); //但不能这样: //float[][] temp = arr01; for (int i = 0; i < temp.Length; i++) { for (int j = 0; j < len; j++) { if (i == j) { continue; } arr01[i][j] = temp[j][i]; //翻转数组 }}Console.WriteLine("结果");Console.WriteLine(getArrStr(arr01));

/// <summary>/// flattern Array/// </summary>/// <param name="arr"></param>/// <returns></returns>private static string getArrStr(float[][] arr){ StringBuilder sb = new StringBuilder(); for (int i = 0; i < arr.Length; i++) { sb.Append("\r\n"); for (int j = 0; j < arr.Length; j++) { sb.Append("\t" + arr[i][j].ToString("G3")); } } return sb.ToString();}

结果如下:

标签:

相关文章

php常量率低技巧_PHP 常量详解教程

PHP 常量常量是单个值的标识符(名称)。在脚本中无法改变该值。有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。注释...

网站推广 2024-12-19 阅读1 评论0