本文就这么朴实无华且枯燥地向大家分享C#中: 一维数组二维数组 的相互转换(一维→二维;二维→一维)……希望能帮到有需求的小伙伴(*^▽^*)。全文完整代码(直接复制运行)如下:

using System;namespace testCodes0411
{class Program{static void Main(string[] args){double[] a = { 1, 2, 3, 4, 5, 6 };double[,] b = Row2VecD(a);double[,] c = Row2ArrT(a, 2);//double[,] c = RowToArrD(a, 2);double[] d = Arr2RowD(c);Console.WriteLine("\n行向量→列向量");for(int i = 0; i < b.GetLength(0); i++){for(int j = 0; j < b.GetLength(1); j++){Console.WriteLine("b[{0},{1}]:{2}", i, j, b[i, j]);}}Console.WriteLine("\n\n行向量→数组");for (int i = 0; i < c.GetLength(0); i++){for (int j = 0; j < c.GetLength(1); j++){Console.WriteLine("c[{0},{1}]:{2}", i, j, c[i, j]);}}Console.WriteLine("\n\n数组→行向量");for (int i = 0; i < d.Length; i++){Console.WriteLine("d[{0}]:{1}", i, d[i]);}Console.ReadKey();}//行向量→数组(内存复制版)static double[,] RowToArrD(double[]src,int row){if (src.Length % row != 0) return null;int col = src.Length / row;double[,] dst = new double[row, col];for(int i = 0; i < row; i++){//说明:“二维数组”【顺序储存】<=>“一维数组”Buffer.BlockCopy(src, i * col * sizeof(double),dst, i * col * sizeof(double), col * sizeof(double));}return dst;}//行向量→列向量(内存复制版)static double[,] Row2VecD(double[] src){double[,] dst = new double[src.Length, 1];Buffer.BlockCopy(src, 0, dst, 0, sizeof(double) * src.Length);return dst;}//行向量→数组(循环版;泛型版)static T[,] Row2ArrT<T>(T[] vec, int row){if (vec.Length % row != 0) return null;int col = vec.Length / row;T[,] ret = new T[row, col];for (int i = 0; i < vec.Length; i++){ret[i / col, i % col] = vec[i];}return ret;}//数组→行向量(内存复制版)static double[] Arr2RowD(double[,] src){int elem = src.GetLength(0) * src.GetLength(1);double[] dst = new double[elem];Buffer.BlockCopy(src, 0, dst, 0, elem * sizeof(double));return dst;}}
}

  友情提示:若顾及效率,最好使用 内存复制版 函数。

参考博文:

  1. C#中,一维数组如何合并成二维数组?除循环赋值有无其他方法?
  2. C#数据结构-Array.Copy和Buffer.BlockCopy详解.

C# 一维数组与二维数组相互转换相关推荐

  1. c语言bool怎么用_C语言中的一维数组和二维数组什么?怎么用?

    C++| 匠心之作 从0到1入门学编程[免费]​yun.itheima.com C语言除了基本数据类型之外,还提供了构造类型的数据,构造类型的数据包括数组类型.结构体类型和共用体类型.下面我们详细介绍 ...

  2. android 一维数组遍历,$.each()循环遍历一维数组、二维数组、JSON数据和DOM元素

    本文介绍$.each()循环遍历一维数组.二维数组.JSON数据和DOM元素. 请注意在使用JQuery $.each()方法前,要首先引用jquery库文件. $.each()循环遍历一维数组 Jq ...

  3. php 数组与数组之间去重,PHP开发中一维数组与二维数组去重功能实现教程

    本篇文章讲述了PHP实现一维数组与二维数组去重功能示例.希望对在php学习和开发的同学有所帮助! 数组中重复项的去除 一维数组的重复项: 使用array_unique函数即可,使用实例如下: ? $a ...

  4. 【C 语言】数组 ( 验证二维数组内存是线性的 | 打印二维数组 | 以一维数组方式打印二维数组 | 打印二维数组值和地址 )

    文章目录 一.验证二维数组内存是线性的 1.打印二维数组 2.以一维数组方式打印二维数组 3.打印二维数组值和地址 二.完整代码示例 一.验证二维数组内存是线性的 验证二维数组内存是线性的 : 验证方 ...

  5. 二维数组,锯齿数组和集合 C# 一维数组、二维数组(矩形数组)、交错数组(锯齿数组)的使用 C# 数组、多维数组(矩形数组)、锯齿数组(交叉数组)...

    二维数组,锯齿数组和集合 一.二维数组 二维数组: 一维数组----豆角 二维数组----表格 定义: 1.一维数组: 数据类型[] 数组变量名 = new 数据类型[数组长度]; 数据类型[] 数组 ...

  6. C语言中的一维数组和二维数组

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/104344394 一 ...

  7. 【蓝桥杯Java_C组·从零开始卷】第四节、一维数组与二维数组

    整篇文章为对java数组的完整理解以及部分排序,并有一些简单的demo,经典的案例与蓝桥杯的一些经典数组题有专门的文章梳理. 目录 数组概述 什么是数组 数组的结构 数组的特点: 数组分类 一维数组声 ...

  8. MATLAB 将不同长度的一维数组存入二维数组

    将多个不同长度的一维数组存入二维数组时,需要将所有一维数组的长度转为相同长度,可以采用在数组后边补零的方式实现. 如果a是行向量,M是你要的最终向量的长度,用 a=[a , zeros(1,M-len ...

  9. 怎样定义和引用一维数组,二维数组

    s1,s2,s3,...,s30 右下角的数字称为下标(subscript) 一批具有同名的同属性的数据就组成了一个数组(array),s就是数组名. 1.怎样定义和引用一维数组 一维数组.二维数组. ...

最新文章

  1. 叮!您收到一份超值Java基础入门资料!
  2. HTML基础第七讲---框架
  3. 基于 Rancher 的企业 CI/CD 环境搭建
  4. 这个瑞士的项目没法在今年三月申请,因为我需要护照并且这个项目在人文社科学员下面,886
  5. Kubernetes 稳定性保障手册(极简版)
  6. 统计难题(HDU-1251)
  7. 代码居中对齐_HTML span标签如何居中和右对齐?这里有HTML span标签的样式解析
  8. iOS开发之常见的URLScheme
  9. 计算机组织原理答案白中英,计算机组成原理答案-白中英
  10. vue spa项目转服务器渲染
  11. nginx的 ngx.var ngx.ctx ngx.req
  12. URP渲染管线场景优化实战 2.1静态资源导入及优化——Audio
  13. Pycharm编译代码时出现“SyntaxError: Non-UTF-8 code starting with ‘\xca‘ in file ...“
  14. 概率论与数理统计---随机变量的分布
  15. 计算机无符号是啥,计算机编程中的无符号是什么
  16. string 析构崩溃 assign
  17. kotlin中RecyclerView.Adapter通用适配器
  18. c沙箱与容器_orw技术分享
  19. 关于UNITY3d摄像机跟随人物转动的脚本
  20. win10下运行两个apache分别用xampp和宝塔面板(最终放弃bt)

热门文章

  1. GC垃圾回收之CMS、G1
  2. 四川大学一九年计算机研究生名单,四川大学公布数百名研究生清退名单,有的长达18年未完成学业...
  3. html注入 绕过域名检查,微信域名拦截查询网页源码——一个非常实用的微信域名检测工具实现...
  4. linux———centos下安装redis(快捷方式)
  5. 乡村振兴项目最全实施流程
  6. jodd操作html,Jodd HTTP的使用
  7. 只需三步,快速新建连接SSH客户端
  8. CVPR 2023 | 去雨去噪去模糊,图像low-level任务,视觉AIGC系列
  9. 上网卡,流量卡的使用
  10. javaweb疫苗预约网站源码