当前位置: 首页 > news >正文

C#数组中的Rank,GetUpperBound(), GetLength()

Rank-数组的秩,一维数组的Rank=1;二维数组的Rank=2;

GetUpperBound()--获取每一维的索引的上限,

比如int[4,5], 那么GetUpperBound(0) = 3; GetUpperBound(1) = 4 ;

所以

对于二维数组来说

GetUpperBound(0)+1=行数;

GetUpperBound(1)+1=列数

然后就是

GetLength(0) = 行数,

GetLength(1) = 列数

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;//数组的合并和拆分
namespace ArrayMergeSplit
{internal class Program{static void Main(string[] args){//将两个一维数组合并成维一个一维数组int[] arr1 = new int[] { 1, 2, 3, 4, 5 };int[] arr2 = new int[] { 6, 7, 8, 9, 10 };Console.WriteLine("原始的两个数组:");Console.WriteLine("数组arr1的元素为:");foreach (int n1 in arr1)Console.Write(n1 + " ");Console.WriteLine();Console.WriteLine("数组arr2的元素为:");foreach (int n2 in arr2)Console.Write(n2 + " ");Console.WriteLine();int[] arr3 = new int[arr1.Length + arr2.Length];for (int i = 0; i < arr3.Length; i++){if (i < arr1.Length)arr3[i] = arr1[i];else if (i >= arr1.Length)arr3[i] = arr2[i - arr1.Length];}Console.WriteLine("合并后的数组为:");foreach (int n3 in arr3)Console.Write(n3 + " ");Console.WriteLine();//将两个一维数组合并成一个二位数组int k = arr1.Length;int m = arr2.Length;int row = 2;int col = 0;if (k > m){col = k;}elsecol = m;int[,] arr4 = new int[row, col];for (int x = 0; x < arr4.GetLength(0); x++){for (int y = 0; y < arr4.GetLength(1); y++){if (y < arr1.Length && x == 0)arr4[x, y] = arr1[y];else if (y < arr2.Length && x == 1)arr4[x, y] = arr2[y];}}Console.WriteLine("合成的二维数组是:");for (int ii = 0; ii < arr4.GetLength(0); ii++){for (int jj = 0; jj < arr4.GetLength(1); jj++){Console.Write(arr4[ii, jj] + " ");}Console.WriteLine();}//另外一种实现方法int[,] arr5 = new int[row, col];for (int i = 0; i < arr5.Rank; i++){//Array.Rank属性返回数组的维数,也就是行数switch (i){case 0:{for (int j = 0; j < arr1.Length; j++)arr5[i, j] = arr1[j];break;}case 1:{for (int j = 0; j < arr2.Length; j++)arr5[i, j] = arr2[j];break;}}}Console.WriteLine("合并后的二维数组为:");for (int i = 0; i < arr5.Rank; i++){//Rank获取数组的维数//arr5.GetUpperBound(arr5.Rank-1)获取数组指定维度的上限for (int j = 0; j <= arr5.GetUpperBound(arr5.Rank-1); j++){Console.Write(arr5[i, j] + " ");}Console.WriteLine();}//GetUpperBound() 方法在 C# 中用于获取数组维度的上限//对于一维数组,它基本上返回数组的上限索引,即数组的长度减去1。//对于多维数组,它返回指定维度的上限。Console.WriteLine("数组的维数:");Console.WriteLine(arr5.Rank);//结果是2Console.WriteLine("GetUpperBound()的用法:");//Console.WriteLine(arr5.GetUpperBound(arr5.Rank));//IndexOutOfRange异常//用GetUpperBond()获去一维数组上限索引int[] arr11 = new int[] { 1, 2, 3, 4, 5 };int[] arr22 = new int[] { 6, 7, 8, 9, 10 };Console.WriteLine("一维数组的秩维:{0}", arr1.Rank);Console.WriteLine("获取一维数组的上限:");Console.WriteLine(arr11.GetUpperBound(0));Console.WriteLine(arr22.GetUpperBound(0)); //GetUpperBound()获得多维数组指定维度的上限Console.WriteLine("获取二维数组arr5的GetUpperBound()值");for(int i=arr5.Rank-1; i>=0; i--){Console.WriteLine("arr5.GetUpperBound({0})= {1}", i, arr5.GetUpperBound(i));}Console.WriteLine();Console.WriteLine("数组arr5的元素为:");for(int i =0; i<arr5.GetLength(0); i++){for(int j=0; j<arr5.GetLength(1); j++){Console.Write(arr5[i, j]+ " ");}Console.WriteLine() ;}Console.WriteLine(arr5.GetUpperBound(0));//arr5[2,5],所以此为1Console.WriteLine(arr5.GetUpperBound(1));//arr5[2,5],所以此为4Console.WriteLine();Console.WriteLine();Console.WriteLine();//测试2int[,] multiArray = new int[3, 5];Console.WriteLine("二维数组的秩是多少?" + multiArray.Rank);int dim0UpperBound = multiArray.GetUpperBound(0); // 返回 2int dim1UpperBound = multiArray.GetUpperBound(1); // 返回 4//GetUpperBound()获得每一维索引的上限Console.WriteLine(dim0UpperBound);Console.WriteLine(dim1UpperBound);//所以对于二维数组来说,arr5.GetUpperBound(0)就是第一维索引的上限,也就是行数-1//arr5.GetUpperBound(1)就是第二维的索引的上限,也就是列数-1;}}
}

相关文章:

C#数组中的Rank,GetUpperBound(), GetLength()

Rank-数组的秩&#xff0c;一维数组的Rank1&#xff1b;二维数组的Rank2&#xff1b; GetUpperBound()--获取每一维的索引的上限&#xff0c; 比如int[4,5], 那么GetUpperBound(0) 3; GetUpperBound(1) 4 ; 所以 对于二维数组来说 GetUpperBound(0)1行数&#xff1b; G…...

Android应用开发项目式教程——序

文章目录 Android技术本书特点本书内容本书参考 Android技术 Android是重要的客户端技术&#xff0c;因其开源开放的特点&#xff0c;Android在其初期就迅速成长为智能手机的主流操作系统&#xff0c;近年来更进一步成为智能电视、智能车载终端等智能设备的主流操作系统&#…...

【Spring Boot 3】【Web】统一处理 HTTP 请求体

【Spring Boot 3】【Web】统一处理 HTTP 请求体 背景介绍开发环境开发步骤及源码工程目录结构总结背景 软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习新技术总…...

uni-app开发微信小程序

uni-app 是一个使用 Vue.js 开发所有前端应用的框架&#xff0c;它允许开发者编写一次代码&#xff0c;然后发布到iOS、Android、Web&#xff08;包括各种小程序平台如微信小程序、支付宝小程序、百度智能小程序等&#xff09;以及各种快应用平台上。对于使用uni-app开发微信小…...

Qt开发框架--完整的软件开发框架

Qt开发框架包含一整套高度直观、模块化 的C 库类&#xff0c;并加载可简化应用程序开发的API。Qt 可生成高可读、易维护和可重用的代码&#xff0c;具有较高的运行时性能&#xff0c;且内存占用小。最重要的是&#xff0c;Qt是跨平台的。 Qt工具分为这么几个类别&#xff1a; …...

Python爬虫-Amazon亚马逊oData参数

前言 本文是该专栏的第37篇,后面会持续分享python爬虫干货知识,记得关注。 本文以“亚马逊Amazon”为例,主要获取亚马逊商品详情页的oData参数规律。 具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。接下来,跟着笔者直接往下看正文详细内容。(附带完整…...

Q215 数组中第K大的元素

思路 可以用排序&#xff0c;但是不用全有序 还有个要求是O&#xff08;n&#xff09; 快排改版 快排只排需要的部分 public int findKthLargest(int[] nums, int k) {return quickSort(nums, 0, nums.length-1, nums.length-k);}public static int quickSort(int[] nums, …...

Java8特性:分组、提取字段、去重、过滤、差集、交集

总结下自己使用过的特性 将对象集合根据某个字段分组 //根据id分组 Map<String, List<Bean>> newMap successCf.stream().collect(Collectors.groupingBy(b -> b.getId().trim()));获取对象集合里面的某个字段的集合 List<Bean> list new ArrayList&l…...

Maven快速上手使用指南的笔记

Maven Mini Guides Configuring for Reproducible Builds 使用Maven实现重复构建。 检查当前使用的插件的版本。 mvn artifact:check-buildplan修改pom.xml&#xff0c;增加如下配置&#xff0c;显式指定project.build.outputTimestamp的取值&#xff1a; <properties>…...

MySQL面试题大全和详解,含SQL例子

若有不理解&#xff0c;可以问一下这几个免费的AI网站 https://ai-to.cn/chathttp://m6z.cn/6arKdNhttp://m6z.cn/6b1quhhttp://m6z.cn/6wVAQGhttp://m6z.cn/63vlPw 下面是一些常见的 MySQL 面试题及其解答&#xff0c;包含 SQL 示例。 1. 什么是 MySQL&#xff1f; 答&…...

java-redis-雪崩

Redis 雪崩问题 Redis雪崩 是指在 Redis 缓存系统中&#xff0c;当大量缓存同时失效时&#xff0c;所有请求直接打到数据库&#xff0c;导致数据库瞬间压力激增&#xff0c;甚至崩溃的现象。雪崩问题通常出现在高并发的系统中&#xff0c;因为缓存的失效导致后端数据库承受不了…...

如何在mac上玩使命召唤手游?苹果电脑好玩的第一人称射击游戏推荐

《使命召唤4&#xff1a;现代战争》&#xff08;Call of Duty 4: Modern Warfare&#xff09;是由Infinity Ward开发并于2007年发行的第一人称射击游戏。该游戏是《使命召唤》系列的第四部作品&#xff0c;是一款非常受欢迎的游戏之一&#xff0c;《使命召唤4&#xff1a;现代战…...

SimHash算法详解与应用

1. 简介 在当今信息爆炸的时代&#xff0c;如何有效地管理和处理海量的文本数据&#xff0c;尤其是去除重复内容&#xff0c;是一项重要的任务。SimHash 是一种巧妙的哈希算法&#xff0c;它不仅能快速生成文本的哈希值&#xff0c;还能在不同文本之间生成相似的哈希值&#x…...

RasberryPi 3B树莓派基本配置

RaspberryPi 3B树莓派基本配置 文章目录 RaspberryPi 3B树莓派基本配置一、准备工作1.1 硬件准备&#xff1a;1.1.1 树莓派和电源适配器&#xff1a;1.1.2 USB转TTL模块&#xff1a;1.1.3 读卡器和TF卡&#xff1a; 1.2 软件准备&#xff1a;1.2.1 下载 Raspberry Pi OS&#x…...

Docker编译环境的使用(ubuntu)

目录 Ubuntu安装docker 重启docker 拉取镜像 进入docker安装软件 提交docker 添加用户到docker组 进入docker 添加build用户 停止容器 保存docker镜像 load镜像 删除容器 Ubuntu安装docker sudo apt install docker.io 国内可用的源 Welcome to nginx! (tence…...

认知杂谈53

今天分享 有人说的一段争议性的话 I I 1.自助者天助 首先呢&#xff0c;咱得好好琢磨琢磨“自助者天助”这句话。这话说起来好像有点高深莫测的感觉&#xff0c;其实啊&#xff0c;道理特别简单。 就是说要是你自己都不乐意努力&#xff0c;那老天爷也不会平白无故地来帮你…...

量子计算信息安全威胁与应对策略分析

作者简介 赖俊森 中国信息通信研究院技术与标准研究所光网络技术与应用研究部主任工程师&#xff0c;正高级工程师&#xff0c;主要研究方向为量子信息、量子通信、量子计算等。 赵文玉 中国信息通信研究院技术与标准研究所副所长&#xff0c;正高级工程师&#xff0c;主要…...

Oracle(112)如何使用RMAN恢复数据库?

使用 RMAN&#xff08;Recovery Manager&#xff09;恢复 Oracle 数据库是确保数据在灾难情况下能够得到恢复的关键步骤。以下是详细的指导和代码示例&#xff0c;展示如何使用 RMAN 进行数据库恢复。 1. 准备工作 在开始恢复之前&#xff0c;需要确保以下几点&#xff1a; …...

I2C通信协议

简介 I2C&#xff08;Inter IC Bus&#xff09;是由Philips公司开发的一种通用数据总线&#xff0c;由两根通信线&#xff1a;SCL&#xff08;Serial Clock&#xff09;和SDA&#xff08;Serial Data&#xff09;组成。是一种同步、半双工带数据应答的通信协议&#xff0c;支持…...

使用Python实现智能信用评分系统

1. 项目简介 本教程将带你一步步实现一个智能信用评分系统。我们将使用Python和一些常用的深度学习库,如TensorFlow和Keras。最终,我们将实现一个可以预测信用评分的模型。2. 环境准备 首先,你需要安装以下库: TensorFlowKeraspandasnumpyscikit-learn你可以使用以下命令…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式&#xff08;Singleton Pattern&#…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...