c#数组和元组

如果需要使用同一类型的多个对象,就可以使用集合或者数组。
C#中用特殊的符号声明、初始化和使用数组。
Array 类在后台发挥作用,为数组中元素的排序和过滤提供好几种方法。
使用枚举器可以迭代数组中元素。
如果需要使用不同类型的多个对象,可以使用 Tuple 元组类型。

数组

简单数组

数组是一种数据结构,可以包含同一个类型的多个元素。

数组的声明

在声明数组时,应该先定义数组中元素的类型,其后是一会方括号和应该变量名。

int [] myArray;//一个整形类型数组

数组的初始化

数组是引用类型,必须给它分配堆上的内存。
使用 new 运算符,指定数组中元素的类型和数量来初始化数组的变量。

myArray = new int [4];

这里初始化数组的大小为4的整形数组。


image.png

在声明数组和初始化数组后,变量myArray就引用了4个int整型值。
在指定了数组大小后,如果不复制数组中所有元素,就不能重新设置数组的大小,如果事先不知道数组中应该含有多少元素,就应该使用集合。

除了在两个语句中声明和初始化数组之外,还可以在一个语句中声明初始化数组。

int[] myArray = new int[4];

还可以使用数组初始化器为数组的每一个元素赋值,数组初始化只能在初始化数组声明变量时使用,不能在声明数组之后使用

int[] myArray = new int[4] { 1,2,3,4};//如果赋值必须为长度的每一个位置赋值

如果使用花括号初始化数组,还可以不指定数组大小,编译器会自动统计元素个数得到数组长度。

int[] myArray = new int[] { 1,2,3,4,5,6,777};

使用C#编译器还有一种简化形式,使用花括号可以同时声明和初始化数组,编译器生成的代码与前面例子相同

int[] myArray = { 1,2,3,4,5,6,777};

数组的访问

在声明和初始化数组后,就可以使用索引器访问其中的元素。数组只支持整形参数的索引器。
通过索引器传递元素编号,就可以访问数组了。
索引器从0开始,表示第一个元素,依次递增。
可以传递给索引器的值为数组长度减一。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;
namespace ConsoleApp11
{
    class Program
    {
        static int[] myArray = { 1,2,3,4,5,6,777};
        static void Main(string[] args)
        {
            int x1 = myArray[0];
            x1 = 100;
            WriteLine(x1);//100
            WriteLine(myArray[0]);//1
            ReadKey();
        }
    }
}

注意,数组是引用,而内容是值类型。
所以这里x1得到的是数组第一个元素的值,对x1值的更改不影响数组中元素的值。
如果要改变数组中元素的值应该为

myArray[0] = 777;

如果不知道数组中元素个数,可以使用for循环迭代数组,得到数组中元素。

 for (int i = 0; i < myArray.Length; i++)//变量,循环条件,变量运算
{
     WriteLine(myArray[i]);
}

也可以使用foreach

foreach(var val in myArray)
{
    WriteLine(val);
}

对数组进行迭代,获得其中的每一个元素

使用引用类型

除了可以声明预定义类型的数组,还可以声明自定义类型的数组。
但是,如果数组中的元素是引用类型,就必须为每个元素分配内存。
如果使用了未分配内存的元素,会抛出异常。

你可能感兴趣的:(c#数组和元组)