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



目录
相关文章
|
1月前
|
C#
C#学习相关系列之数组---常用方法使用(二)
C#学习相关系列之数组---常用方法使用(二)
|
1月前
|
存储 C#
C#学习系列相关之数组(一)---数组的定义与使用
C#学习系列相关之数组(一)---数组的定义与使用
|
2月前
|
JavaScript 前端开发
总结TypeScript 的一些知识点:TypeScript Array(数组)(下)
一个数组的元素可以是另外一个数组,这样就构成了多维数组(Multi-dimensional Array)。
|
2月前
|
存储 JavaScript 前端开发
总结TypeScript 的一些知识点:TypeScript Array(数组)(上)
数组对象是使用单独的变量名来存储一系列的值。
|
3月前
|
存储 安全 Swift
在Swift中,数组(Array)
在Swift中,数组(Array)
29 3
|
1月前
|
C#
C# 字节数组与INT16,float,double之间相互转换,字符数组与字符串相互转换,
C# 字节数组与INT16,float,double之间相互转换,字符数组与字符串相互转换,
37 1
|
2月前
Google Earth Engine(GEE)——reducer中进行array数组的获取和分析
Google Earth Engine(GEE)——reducer中进行array数组的获取和分析
34 0
|
3月前
|
Rust 索引 Windows
Rust 原始类型之数组array内置方法
Rust 原始类型之数组array内置方法
55 0
Rust 原始类型之数组array内置方法
|
3月前
|
存储 C# C++
C# 笔记2 - 数组、集合与与文本文件处理
C# 笔记2 - 数组、集合与与文本文件处理
46 0
|
3月前
|
存储 数据可视化 C#
C# Break 和 Continue 语句以及数组详解
它被用于“跳出” switch 语句。 break 语句也可用于跳出循环。 以下示例在 i 等于 4 时跳出循环: 示例:
57 0