C# 数组(Array)

简介: 基础知识声明数组datatype[] arrayName;初始化数组:声明一个数组不会在内存中初始化数组。当初始化数组变量时,您可以赋值给数组。数组是一个引用类型,所以您需要使用 new 关键字来创建数组的实例。例如:double[] balance = new double[10];您可以在声明数组的同时给数组赋值,比如:double[] balance = { 2340.0, 4523.69, 3421.0};您也可以创建并初始化一个数组,比如:int[] marks = new int[5] { 99, 98, 92, 97, 95};在上述情况下,你

基础知识



声明数组

datatype[] arrayName;


初始化数组:


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

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


例如:

double[] balance = new double[10];


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

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;


访问数组元素

static void Main (string[] args) {
            // 普通for循环方式
            int[] array = { 1, 2, 3, }; 
            for (int i = 0, length = array.Length; i < length; i++) {
                Console.WriteLine(array[i]);
            }
            /* foreach方式 输出每个数组元素的值 */
            foreach (int j in array) {
                Console.WriteLine("{0}", j);
            }
            Console.ReadKey();
        }


C# 二维数组


多维数组最简单的形式是二维数组。一个二维数组,在本质上,是一个一维数组的列表。


一个二维数组可以被认为是一个带有 x 行和 y 列的表格。

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


C# 交错数组



交错数组是数组的数组。


交错数组是一维数组。


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

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}};


C# 传递数组给函数



C# 数组](https://www.runoob.com/csharp/csharp-array.html)


在 C# 中,您可以传递数组作为函数的参数。您可以通过指定不带索引的数组名称来给函数传递一个指向数组的指针

class MyArray {
        double getAverage (int[] arr) {
            int size = arr.Length;
            int i;
            double avg;
            int sum = 0;
            for (i = 0; i < size; ++i) {
                sum += arr[i];
            }
            avg = (double)sum / size;
            return avg;
        }
        static void Main (string[] args) {
            MyArray app = new MyArray();
            /* 一个带有 5 个元素的 int 数组 */
            int[] balance = { 4, 1, 2, 3, 5 };
            double avg;
            /* 传递数组的指针作为参数 */
            avg = app.getAverage(balance);
            /* 输出返回值 */
            Console.WriteLine("平均值是: {0} ", avg);
            Console.ReadKey();
        }
    }
}


params 关键字



在使用数组作为形参时,C# 提供了 params 关键字,使调用数组为形参的方法时,既可以传递数组实参,也可以传递一组数组元素。params 的使用格式为:


类比Java的可变参数...

public 返回类型 方法名称( 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();
            // 可以无参
            Console.WriteLine("总和是: {0}", app.AddElements());
            // 可以任意参数
            Console.WriteLine("总和是: {0}", app.AddElements(1, 3, 5, 7, 9));
            Console.ReadKey();
        }
    }
}


C# Array 类



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

using System;
namespace ArrayApplication
{
    class MyArray
    {
        static void Main(string[] args)
        {
            int[] list = { 34, 72, 13, 44, 25, 30, 10 };
            Console.Write("原始数组: ");
            foreach (int i in list)
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();
            // 逆转数组
            Array.Reverse(list);
            Console.Write("逆转数组: ");
            foreach (int i in list)
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();
            // 排序数组
            Array.Sort(list);
            Console.Write("排序数组: ");
            foreach (int i in list)
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();
           Console.ReadKey();
        }
    }
}



目录
相关文章
|
19天前
|
存储 Go 索引
go语言中的数组(Array)
go语言中的数组(Array)
100 67
|
3月前
|
存储 C# 索引
C# 一分钟浅谈:数组与集合类的基本操作
【9月更文挑战第1天】本文详细介绍了C#中数组和集合类的基本操作,包括创建、访问、遍历及常见问题的解决方法。数组适用于固定长度的数据存储,而集合类如`List<T>`则提供了动态扩展的能力。文章通过示例代码展示了如何处理索引越界、数组长度不可变及集合容量不足等问题,并提供了解决方案。掌握这些基础知识可使程序更加高效和清晰。
88 2
|
2月前
|
人工智能 前端开发 JavaScript
拿下奇怪的前端报错(一):报错信息是一个看不懂的数字数组Buffer(475) [Uint8Array],让AI大模型帮忙解析
本文介绍了前端开发中遇到的奇怪报错问题,特别是当错误信息不明确时的处理方法。作者分享了自己通过还原代码、试错等方式解决问题的经验,并以一个Vue3+TypeScript项目的构建失败为例,详细解析了如何从错误信息中定位问题,最终通过解读错误信息中的ASCII码找到了具体的错误文件。文章强调了基础知识的重要性,并鼓励读者遇到类似问题时不要慌张,耐心分析。
|
2月前
|
存储 Java
Java“(array) <X> Not Initialized” (数组未初始化)错误解决
在Java中,遇到“(array) &lt;X&gt; Not Initialized”(数组未初始化)错误时,表示数组变量已被声明但尚未初始化。解决方法是在使用数组之前,通过指定数组的大小和类型来初始化数组,例如:`int[] arr = new int[5];` 或 `String[] strArr = new String[10];`。
95 2
|
2月前
|
存储 JavaScript 前端开发
JavaScript Array(数组) 对象
JavaScript Array(数组) 对象
30 3
|
2月前
|
数据采集 JavaScript 前端开发
JavaScript中通过array.filter()实现数组的数据筛选、数据清洗和链式调用,JS中数组过滤器的使用详解(附实际应用代码)
JavaScript中通过array.filter()实现数组的数据筛选、数据清洗和链式调用,JS中数组过滤器的使用详解(附实际应用代码)
|
3月前
|
Go
Golang语言之数组(array)快速入门篇
这篇文章是关于Go语言中数组的详细教程,包括数组的定义、遍历、注意事项、多维数组的使用以及相关练习题。
50 5
|
4月前
|
Python
PyCharm View as Array 查看数组
PyCharm View as Array 查看数组
118 1
|
5月前
|
索引
|
5月前
|
JavaScript API 索引
JS【详解】Set 集合 (含 Set 集合和 Array 数组的区别,Set 的 API,Set 与 Array 的性能对比,Set 的应用场景)
JS【详解】Set 集合 (含 Set 集合和 Array 数组的区别,Set 的 API,Set 与 Array 的性能对比,Set 的应用场景)
86 0