数组(Arrays)和列表(Lists) — Unity C#

作者 : admin 本文共2392个字,预计阅读时间需要6分钟 发布时间: 2024-01-4 共3人阅读

数组(Arrays)和列表(Lists) — Unity C#

数组(Arrays)和列表(Lists) — Unity C#插图

数组

数组是 C# 提供的最基本的集合。将它们视为一组值的容器,在编程术语中称为元素,每个值都可以单独访问或修改。
· 数组可以存储任何类型的值;所有元素必须属于同一类型。
· 数组的长度或元素数量是在创建时设置的。
· 如果创建时没有指定初始值,则每个元素都会被赋予一个默认值。存储数字类型的数组默认为零,而任何其他类型则设置为 null 或无。
数组是 C# 中最不灵活的集合类型。这主要是因为元素创建后无法添加或删除。然而,它们在存储不太可能改变的信息时特别有用。与其他集合类型相比,缺乏灵活性使得它们速度更快。

基本语法

· 数组变量需要指定的元素类型、一对方括号和唯一的名称。
· new 关键字用于在内存中创建数组,后面跟着值类型和另一对方括号。
· 数组将存储的元素数量位于第二对方括号内。
elementType[] name = mew elementType[numberOfElements];
让我们举个例子,我们需要获得游戏中的前三名高分:
int topPlayerScores = new int[3];
细分来看,topPlayerScores 是一个整数数组,将存储三个整数元素。由于我们没有添加任何初始值,因此 topPlayerScores 中的三个值均为 0。
您可以在创建数组时直接为其赋值,方法是将它们添加到变量声明末尾的一对大括号内。
//Longhand initializer
int[] topPlayerScores = new int[] {313, 549, 984};
//Shorthand initializer
int[] topPlayerScores = {313, 549, 984};

索引和下标

每个数组元素都按照分配的顺序存储,这称为索引。数组是零索引的,这意味着元素顺序从零开始,而不是从一开始。将元素的索引视为其引用或位置。在 topPlayerScores 中,第一个整数 313 位于索引 0 处,549 位于索引 1 处,984 位于索引 2 处。

数组(Arrays)和列表(Lists) — Unity C#插图(1)

使用下标运算符按索引定位各个值,下标运算符是一对包含元素索引的方括号。例如,要检索并存储 topPlayerScores 中的第二个数组元素,我们将使用数组名称,后跟下标括号和索引 1。
// The value of score is set to 549
int score = topPlayerScores[1];
下标运算符也可用于直接修改数组值,就像任何其他变量一样,甚至可以单独作为表达式传递。
topPlayerScores[1] = 1200;
Debug.Log("topPlayerScores[1]");

topPlayerScores 中的值现在为 313、1200 和 984。

范围例外:

创建数组时,元素的数量是固定的且不可更改的,这意味着我们无法访问不存在的元素。在 topPlayerScores 示例中,数组长度为 3,因此有效索引的范围为 0 到 2。任何 3 或更高的索引都超出了数组的范围,并将在控制台中生成一个恰当命名的 IndexOutOfRangeException。

数组(Arrays)和列表(Lists) — Unity C#插图(2)

Lists 列表

列表与数组密切相关,在单个变量中收集相同类型的多个值。在添加、删除和更新元素时​​,它们更容易处理,但它们的元素不是按顺序存储的。这有时会导致比阵列更高的性能成本。

基本语法

List类型变量需要满足以下要求:
· List 关键字、其在左右箭头字符内的元素类型以及唯一的名称。
· new 关键字初始化内存中的列表,用List 关键字和元素类型之间的箭头字符表示。
· 一对括号,以分号结尾。
List<elementType> name = new List<elementType>();
与数组一样,列表可以通过在一对大括号内添加元素值在变量声明中进行初始化。
List<elementType> name = new List<elementType>(){value1, value2};
元素按照添加顺序存储,零索引,并且可以使用下标运算符访问。
成员——示例
创建一个名为 questPartyMembers 的字符串类型列表,并使用三个字符的名称对其进行初始化。
添加调试日志以使用 Count 方法打印出列表中的队伍成员数量。
保存文件并在 Unity 中播放。
我们初始化了一个包含三个字符串值的新列表,并使用 List 类中的 count 方法打印出元素的数量:

数组(Arrays)和列表(Lists) — Unity C#插图(3)

常用方法

可以像使用下标运算符和索引的数组一样访问和修改列表元素,只要索引在 List 类的范围内即可。但是,List 类具有多种扩展其功能的方法,例如添加、插入和删除元素。继续使用 questPartyMembers 列表,让我们向团队添加一个新成员:
questPartyMembers.Add("Craven");
Add 方法将新元素追加到列表末尾。这使得 questPartyMembers 计数达到 4,元素顺序如下:
{"Grim", "Merlin", Sterling", "Craven"};
要将元素添加到列表中的特定位置,我们可以向 insert 方法传递索引和要添加的值。
questPartyMembers.Insert(1, "Tanis");
当在先前占用的索引处插入元素时,列表中的所有元素的索引都会增加 1。
{"Grim", "Tanis", "Merlin", Sterling", "Craven"};
删除一个元素也同样简单;我们所需要的只是索引或文字值,List 类可以完成这项工作。
// Both of these methods would remove the required element
questPartyMembers.Remove(0);
questPartyMembers.Remove("Grim");
编辑结束后,questPartyMembers 现在包含索引从 0 到 3 的以下元素。
{"Tanis", "Merlin", Sterling", "Craven"};
上面的例子在Unity中

数组(Arrays)和列表(Lists) — Unity C#插图(4)

数组(Arrays)和列表(Lists) — Unity C#插图(5)

本站无任何商业行为
个人在线分享 » 数组(Arrays)和列表(Lists) — Unity C#
E-->