C# 数组

news/2025/2/11 1:12:14/

C# 数组

  • 一维数组
      • 初始化数组
      • 赋值给数组
  • 二维数组
      • 初始化二维数组
  • 交错数组
      • 交错数组的声明类型和其中的数组类型必须一致。
  • 参数数组
  • Array 类

一维数组

初始化数组

声明一个数组不会在内存中初始化数组。当初始化数组变量时,您可以赋值给数组。

数组是一个引用类型,所以您需要使用 new 关键字来创建数组的实例。

例如:

double[] balance = new double[10];

赋值给数组

您可以通过使用索引号赋值给一个单独的数组元素,比如:

double[] balance = new double[10];
balance[0] = 4500.0;

您可以在声明数组的同时给数组赋值,比如:

double[] balance = { 2340.0, 4523.69, 3421.0};

您也可以创建并初始化一个数组,比如:

int [] marks = new int[5]  { 99,  98, 92, 97, 95};

在上述情况下,你也可以省略数组的大小,比如:

int [] marks = new int[]  { 99,  98, 92, 97, 95};

您也可以赋值一个数组变量到另一个目标数组变量中。在这种情况下,目标和源会指向相同的内存位置:

int [] marks = new int[]  { 99,  98, 92, 97, 95};
int[] score = marks;

当您创建一个数组时,C# 编译器会根据数组类型隐式初始化每个数组元素为一个默认值。例如,int 数组的所有元素都会被初始化为 0

注意
有一个例外情况,那就是当你使用数组字面量初始化数组时,你可以省略new关键字。数组字面量是一种特殊的语法,允许你直接通过指定数组元素的值来初始化数组。例如:

int[] myArray = { 1, 2, 3, 4, 5 }; // 使用数组字面量初始化数组

这个例子中,虽然我们没有显式使用new关键字,但编译器会隐式地为我们执行相应的内存分配操作。这实际上是一种语法糖,编译器在后台仍然使用new来创建数组对象。

总之,虽然在使用数组字面量时可以省略new,但在大多数情况下,创建数组时还是需要显式地使用new关键字。

二维数组

您可以声明一个 string 变量的二维数组,如下:

string [,] names;

或者,您可以声明一个 int 变量的三维数组,如下:

int [ , , ] m;

初始化二维数组

多维数组可以通过在括号内为每行指定值来进行初始化。下面是一个带有 3 行 4 列的数组。

int [,] a = new int [3,4] {{0, 1, 2, 3} ,   /*  初始化索引号为 0 的行 */{4, 5, 6, 7} ,   /*  初始化索引号为 1 的行 */{8, 9, 10, 11}   /*  初始化索引号为 2 的行 */
};

访问二维数组元素
二维数组中的元素是通过使用下标(即数组的行索引和列索引)来访问的。例如:

int val = a[2,3];

总的来说就是一个方括号里面打逗号了

交错数组

错数组是数组的数组。

交错数组是一维数组。

您可以声明一个带有 int 值的交错数组 scores,如下所示:

int [][] scores;

声明一个数组不会在内存中创建数组。创建上面的数组:

int[][] scores = new int[5][];
for (int i = 0; i < scores.Length; i++) 
{scores[i] = new int[4];
}

您可以初始化一个交错数组,如下所示:

int[][] scores = new int[2][]{new int[]{92,93,94},new int[]{85,66,87,88}};

其中,scores 是一个由两个整型数组组成的数组 ,
scores[0] 是一个带有 3 个整数的数组,scores[1] 是一个带有 4 个整数的数组。

交错数组的声明类型和其中的数组类型必须一致。

交错数组,也称锯齿形数组,是一种不规则的二维数组,它的特点是数组中每一行的长度并不相同。在声明交错数组时,我们需要指定顶层数组的类型(即子数组的类型),而每个子数组本身也是一个数组,其类型必须与顶层数组声明的类型相匹配
例如,如果我们声明一个整数类型的交错数组,那么该交错数组的每个子数组也必须是整数类型的数组。这样做可以确保交错数组的一致性和正确性,避免在运行时出现类型不匹配的错误。
因此,在创建和使用交错数组时,必须确保声明类型和其中的数组类型保持一致。

总之,交错数组的创立

type [][] name = new type [num][];

type为类型
num为交错数组的个数

参数数组

平时将数组传给函数都是指针的形式,但也有可能因此改变数组的值
于是我们可以通过params 来进行值传递

using System;namespace ArrayApplication
{class ParamArray{public int AddElements(params int[] arr){int sum = 0;foreach (int i in arr){sum += i;}return sum;}}class TestClass{static void Main(string[] args){ParamArray app = new ParamArray();int sum = app.AddElements(512, 720, 250, 567, 889);Console.WriteLine("总和是: {0}", sum);Console.ReadKey();}}
}
public int AddElements(params int[] arr)

就是多了个params修饰

Array 类

Array 类是 C# 中所有数组的基类,它是在 System 命名空间中定义。Array 类提供了各种用于数组的属性和方法。

速速进入


http://www.ppmy.cn/news/1391503.html

相关文章

无服务器推理在大语言模型中的未来

服务器无服务器推理的未来&#xff1a;大型语言模型 摘要 随着大型语言模型(LLM)如GPT-4和PaLM的进步&#xff0c;自然语言任务的能力得到了显著提升。LLM被广泛应用于聊天机器人、搜索引擎和编程助手等场景。然而&#xff0c;由于LLM对GPU和内存的巨大需求&#xff0c;其在规…

Spring常用设计模式-实战篇之单例模式

实现案例&#xff0c;饿汉式 Double-Check机制 synchronized锁 /*** 以饿汉式为例* 使用Double-Check保证线程安全*/ public class Singleton {// 使用volatile保证多线程同一属性的可见性和指令重排序private static volatile Singleton instance;public static Singleton …

【洛谷 P8687】[蓝桥杯 2019 省 A] 糖果 题解(动态规划+位集合+位运算)

[蓝桥杯 2019 省 A] 糖果 题目描述 糖果店的老板一共有 M M M 种口味的糖果出售。为了方便描述&#xff0c;我们将 M M M 种口味编号 1 1 1 ∼ M M M。 小明希望能品尝到所有口味的糖果。遗憾的是老板并不单独出售糖果&#xff0c;而是 K K K 颗一包整包出售。 幸好糖…

【C++】1600. 请假时间计算

问题&#xff1a;1600. 请假时间计算 类型&#xff1a;基本运算、整数运算 题目描述&#xff1a; 假设小明的妈妈向公司请了 n 天的假&#xff0c;那么请问小明的妈妈总共请了多少小时的假&#xff0c;多少分钟的假&#xff1f;&#xff08;提示&#xff1a; 1 天有 24 小时&…

HarmonyOS 应用开发案例

本帖下方集中了HarmonyOS Next应用开发时&#xff0c;会遇到的常见应用案例。后续会持续更新大量案例&#xff0c;帮助开发者快速学习。欢迎感兴趣的同学加入Q&#xff1a;454901491 72.手写绘制及保存图片案例&#xff08;0319更新&#xff09;&#xff08;点此查看源码实现&…

【呼市经开区建设服务项目水、电能耗监测 数采案例】

实施方案 针对能耗采集中的水、电能源数据采集&#xff0c;因客观因素条件&#xff0c;数据采集方面存在较大难度。大多数国网电表485接口由于封签限制&#xff0c;不能实施采集&#xff0c;不让拆机接线&#xff0c;采集实施存在困难。水量能耗采集&#xff0c;存在类似问题&a…

Java毕业设计-基于springboot开发的书籍学习平台-毕业论文+答辩PPT(附源代码+演示视频)

文章目录 前言一、毕设成果演示&#xff08;源代码在文末&#xff09;二、毕设摘要展示1、开发说明2、需求分析3、系统功能结构 三、系统实现展示1、平台功能模块2、后台功能模块2.1管理员功能模块2.2用户功能模块2.3作者功能模块 四、毕设内容和源代码获取总结 Java毕业设计-基…

(vue)新闻列表与图片对应显示,体现选中、移入状态

(vue)新闻列表与图片对应显示&#xff0c;体现选中、移入状态 项目背景&#xff1a;郑州院XX项目首页-新闻展示模块&#xff0c;鼠标移入显示对应图片&#xff0c;且体现选中和移入状态 首次加载&#xff1a; 切换列表后&#xff1a; html: <el-row :gutter"20"…