C#数组(Array)

2021/12/5 12:48:27

本文主要是介绍C#数组(Array),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

  • 声明数组
  • 初始化数组
  • 给数组赋值
  • 访问数组元素
  • 使用foreach循环

一、声明数组

/*声明一个数组的语法:
datatype[] arrayName;*/

double[] balance;

【说明】:

  • datatype 用于指定被存储在数组中的元素的类型。
  • [ ] 指定数组的秩(维度)。秩指定数组的大小。
  • arrayName 指定数组的名称。

二、初始化数组

数组是一个引用类型,需要使用 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。

四、访问数组元素

通过带索引的数组名称来访问数组元素。如,a[9] 。

double salary = balance[9];

五、使用foreach循环

using System;

namespace ArrayApplication
{
   class MyArray
   {
      static void Main(string[] args)
      {
         int []  n = new int[10]; /* n 是一个带有 10 个整数的数组 */


         /* 初始化数组 n 中的元素 */        
         for ( int i = 0; i < 10; i++ )
         {
            n[i] = i + 100;
         }

         /* 输出每个数组元素的值 */
         foreach (int j in n )
         {
            int i = j-100;
            Console.WriteLine("Element[{0}] = {1}", i, j);
         }
         Console.ReadKey();
      }
   }
}

  • 多维数组
  • 交错数组(数组的数组)
  • 传递数组给函数
  • 参数数组
  • Array类

概念描述
多维数组C# 支持多维数组。多维数组最简单的形式是二维数组。
交错数组C# 支持交错数组,即数组的数组。
传递数组给函数您可以通过指定不带索引的数组名称来给函数传递一个指向数组的指针。
参数数组这通常用于传递未知数量的参数给函数。
Array类在 System 命名空间中定义,是所有数组的基类,并提供了各种用于数组的属性和方法。

一、多维数组

1、多维数组的声明

//声明一个 string 变量的二维数组
string [,] names;

//声明一个 int 变量的三维数组
int [ , , ] m;

二维数组

C# 中的二维数组

 2、二维数组的初始化

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

3、访问二维数组元素

通过使用下标(即数组的行索引和列索引)来访问。

int val = a[2,3];
//使用循环嵌套遍历输出二维数组的元素值
using System;

namespace ArrayApplication
{
    class MyArray
    {
        static void Main(string[] args)
        {
            /* 一个带有 5 行 2 列的数组 */
            int[,] a = new int[5, 2] {{0,0}, {1,2}, {2,4}, {3,6}, {4,8} };

            int i, j;

            /* 输出数组中每个元素的值 */
            for (i = 0; i < 5; i++)
            {
                for (j = 0; j < 2; j++)
                {
                    Console.WriteLine("a[{0},{1}] = {2}", i, j, a[i,j]);
                }
            }
           Console.ReadKey();
        }
    }
}

二、交错数组

交错数组(数组中的数组)是一维数组。

1、交错数组的声明

//声明一个带有 int 值的交错数组 scores

int [][] scores;

2、创建交错数组

//在内存中创建上面声明的交错数组
int[][] scores = new int[5][];
for (int i = 0; i < scores.Length; i++) 
{
   scores[i] = new int[4];
}

3、交错数组的初始化

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

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

三、传递数组给函数

通过指定不带索引的数组名称来给函数传递一个指向数组的指针。

using System;

namespace ArrayApplication
{
   class MyArray
   {
      double getAverage(int[] arr, int size)
      {
         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 = new int[]{1000, 2, 3, 17, 50};
         double avg;

         /* 传递数组的指针作为参数 */
         avg = app.getAverage(balance, 5 ) ;

         /* 输出返回值 */
         Console.WriteLine( "平均值是: {0} ", avg );
         Console.ReadKey();
      }
   }
}

四、参数数组

参数数组通常用于传递未知数量的参数给函数。

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

/*params 的使用格式
public 返回类型 方法名称( params 类型名称[] 数组名称 )*/

public int AddElements(params int[] arr){}

int sum = app.AddElements(512, 720, 250, 567, 889);

五、Array类

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

1、Array类的属性

序号属性 & 描述
1IsFixedSize
获取一个值,该值指示数组是否带有固定大小。
2IsReadOnly
获取一个值,该值指示数组是否只读。
3Length
获取一个 32 位整数,该值表示所有维度的数组中的元素总数。
4LongLength
获取一个 64 位整数,该值表示所有维度的数组中的元素总数。
5Rank
获取数组的秩(维度)。

2、Array类的方法

序号方法 & 描述
1Clear
根据元素的类型,设置数组中某个范围的元素为零、为 false 或者为 null。
2Copy(Array, Array, Int32)
从数组的第一个元素开始复制某个范围的元素到另一个数组的第一个元素位置。长度由一个 32 位整数指定。
3CopyTo(Array, Int32)
从当前的一维数组中复制所有的元素到一个指定的一维数组的指定索引位置。索引由一个 32 位整数指定。
4GetLength
获取一个 32 位整数,该值表示指定维度的数组中的元素总数。
5GetLongLength
获取一个 64 位整数,该值表示指定维度的数组中的元素总数。
6GetLowerBound
获取数组中指定维度的下界。
7GetType
获取当前实例的类型。从对象(Object)继承。
8GetUpperBound
获取数组中指定维度的上界。
9GetValue(Int32)
获取一维数组中指定位置的值。索引由一个 32 位整数指定。
10IndexOf(Array, Object)
搜索指定的对象,返回整个一维数组中第一次出现的索引。
11Reverse(Array)
逆转整个一维数组中元素的顺序。
12SetValue(Object, Int32)
给一维数组中指定位置的元素设置值。索引由一个 32 位整数指定。
13Sort(Array)
使用数组的每个元素的 IComparable 实现来排序整个一维数组中的元素。
14ToString
返回一个表示当前对象的字符串。从对象(Object)继承。



这篇关于C#数组(Array)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程