2022年7月31日--使用C#迈出第一步--使用C#中的数组和foreach语句来存储和循环访问数据序列

处理数据结构中称为数组的相关数据序列。 然后,学习如何循环访问序列中的每一项。

简介

C# 数组可以将值的序列存储在单个数据结构中。 换而言之,假设一个可以保存多个值的变量。 一旦有了一个可存储所有值的变量,就可以对值进行排序、颠倒值的顺序、遍历每个值并逐个检查每个值,等等。

练习-数组基础信息

什么是数组?

数组是可通过单个变量名称进行访问的一系列单个数据元素。 使用从零开始的数字索引访问数组中的每个元素。

声明数组

数组是一种特殊类型的变量,可以保存同一数据类型的多个值。 因为必须同时指定数组的数据类型和大小,所以声明语法略有不同。

步骤1-声明新数组

new 运算符在可容纳三个字符串值的计算机内存中创建数组的新实例。 

string[] fraudulentOrderIDs = new string[3];

为数组的元素赋值

此时,我们已声明了一个字符串数组,但该数组的每个元素都为空。 若要访问数组的元素,请使用方括号内从零开始的数字索引。

像常规变量一样,使用 = 分配值进行赋值。

步骤2-为数组中的元素赋值

string[] fraudulentOrderIDs = new string[3];

fraudulentOrderIDs[0] = "A123";
fraudulentOrderIDs[1] = "B456";
fraudulentOrderIDs[2] = "C789";

步骤3-尝试使用超出数组界限的索引

从零开始访问数组中的每个元素。 

string[] fraudulentOrderIDs = new string[3];

fraudulentOrderIDs[0] = "A123";
fraudulentOrderIDs[1] = "B456";
fraudulentOrderIDs[2] = "C789";
fraudulentOrderIDs[3] = "D000";

运行应用时,收到一条较长的错误信息。

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IndexOutOfRangeException: Index was outside the bounds of the array.

获取数组中元素的值

可以采用相同的方式从数组的元素中获取值。 使用元素的索引来检索元素的值。

步骤4-检索数组的值

string[] fraudulentOrderIDs = new string[3];

fraudulentOrderIDs[0] = "A123";
fraudulentOrderIDs[1] = "B456";
fraudulentOrderIDs[2] = "C789";
// fraudulentOrderIDs[3] = "D000";

Console.WriteLine($"First: {fraudulentOrderIDs[0]}");
Console.WriteLine($"Second: {fraudulentOrderIDs[1]}");
Console.WriteLine($"Third: {fraudulentOrderIDs[2]}");

First: A123
Second: B456
Third: C789

步骤5-重新分配数组的值

string[] fraudulentOrderIDs = new string[3];

fraudulentOrderIDs[0] = "A123";
fraudulentOrderIDs[1] = "B456";
fraudulentOrderIDs[2] = "C789";
// fraudulentOrderIDs[3] = "D000";

Console.WriteLine($"First: {fraudulentOrderIDs[0]}");
Console.WriteLine($"Second: {fraudulentOrderIDs[1]}");
Console.WriteLine($"Third: {fraudulentOrderIDs[2]}");

fraudulentOrderIDs[0] = "F000";

Console.WriteLine($"Reassign First: {fraudulentOrderIDs[0]}");

First: A123
Second: B456
Third: C789
Reassign First: F000

初始化数组

就像在声明变量时可以对其进行初始化一样,可以在使用带有大括号的特殊语法来声明新数组时,初始化新的数组。

步骤6-初始化数组

/*
string[] fraudulentOrderIDs = new string[3];

fraudulentOrderIDs[0] = "A123";
fraudulentOrderIDs[1] = "B456";
fraudulentOrderIDs[2] = "C789";
// fraudulentOrderIDs[3] = "D000";
*/

string[] fraudulentOrderIDs = { "A123", "B456", "C789" };

Console.WriteLine($"First: {fraudulentOrderIDs[0]}");
Console.WriteLine($"Second: {fraudulentOrderIDs[1]}");
Console.WriteLine($"Third: {fraudulentOrderIDs[2]}");

fraudulentOrderIDs[0] = "F000";

Console.WriteLine($"Reassign First: {fraudulentOrderIDs[0]}");

First: A123
Second: B456
Third: C789
Reassign First: F000

获取数组大小

要确定数组的大小,可使用 Length 属性。

步骤7-使用数组的Length属性来打印虚假订单的编号

string[] fraudulentOrderIDs = { "A123", "B456", "C789" };

Console.WriteLine($"First: {fraudulentOrderIDs[0]}");
Console.WriteLine($"Second: {fraudulentOrderIDs[1]}");
Console.WriteLine($"Third: {fraudulentOrderIDs[2]}");

fraudulentOrderIDs[0] = "F000";

Console.WriteLine($"Reassign First: {fraudulentOrderIDs[0]}");

Console.WriteLine($"There are {fraudulentOrderIDs.Length} fraudulent orders to process.");

First: A123
Second: B456
Third: C789
Reassign First: F000
There are 3 fraudulent orders to process.

概括

使用数组时,应谨记以下重要事项。

  • 数组是一种特殊的变量,用于保存一系列相关的数据元素。
  • 应记住数组变量声明的基本格式。
  • 访问数组的每个元素,使用方括号内从零开始的索引来设置或获取其值。
  • 如果尝试访问数组边界之外的索引,则会出现运行时异常。
  • Length 属性采用编程方式来确定数组中的元素编号。

练习-foreach语句

使用foreach遍历数组

foreach 语句遍历数组中的每个元素。

string[] names = { "Bob", "Conrad", "Grant" };
foreach (string name in names)
{
    Console.WriteLine(name);
}

在 foreach 关键字下,包含 Console.WriteLine(name); 的代码块将为 names 数组的每个元素执行一次。 当 .Net 运行时遍历数组的每个元素时,将存储在 names 数组的当前元素中的值分配给临时变量 name,以便能轻松访问代码块。

Bob
Conrad
Grant

步骤1-创建并初始化int数组

int[] inventory = { 200, 450, 700, 175, 250 };

步骤2-添加foreach语句以循环访问数组

int[] inventory = { 200, 450, 700, 175, 250 };

foreach (int items in inventory)
{

}

步骤3-添加变量以对数组中每个元素的值求和

int[] inventory = { 200, 450, 700, 175, 250 };
int sum = 0;
foreach (int items in inventory)
{
    sum += items;
}

步骤4-显示总和的最终值 

int[] inventory = { 200, 450, 700, 175, 250 };
int sum = 0;
foreach (int items in inventory)
{
    sum += items;
}

Console.WriteLine($"We have {sum} items in inventory.");

We have 1775 items in inventory.

步骤5-创建一个变量,用于存储当前桶编号并显示小计

int[] inventory = { 200, 450, 700, 175, 250 };
int sum = 0;
int bin = 0;
foreach (int items in inventory)
{
    sum += items;
    bin++;
    Console.WriteLine($"Bin {bin} = {items} items (Running total: {sum})");
}
Console.WriteLine($"We have {sum} items in inventory.");

Bin 1 = 200 items (Running total: 200)
Bin 2 = 450 items (Running total: 650)
Bin 3 = 700 items (Running total: 1350)
Bin 4 = 175 items (Running total: 1525)
Bin 5 = 250 items (Running total: 1775)
We have 1775 items in inventory.

概括

关于本单元介绍的 foreach 语句和其他内容,需要谨记以下几点。

  • 使用 foreach 语句来循环访问数组中的每个元素,为数组中的每个元素执行一次关联的代码块。
  • foreach 语句将数组中当前元素的值设置为临时变量,该临时变量可用于代码块的正文中。
  • 使用 ++ 增量运算符将 1 添加到变量的当前值中。

挑战

若要确定某元素是否以字母“B”开头,请使用 Stri

string[] orderIDs = { "B123", "C234", "A345", "C15", "B177", "G3003", "C235", "B179" };

foreach (string orderID in orderIDs)
{
    if (orderID.StartsWith("B"))
    {
        Console.WriteLine(orderID);
    }
}

ng.StartsWith() 方法。 查看以下简单示例,了解如何使用 String.StartsWith() 方法,以便在你的代码中使用它:

string name = "Bob";
if (name.StartsWith("B"))
{
    Console.WriteLine("The name starts with 'B'!");
}

The name starts with 'B'!

解决方案

string[] orderIDs = { "B123", "C234", "A345", "C15", "B177", "G3003", "C235", "B179" };

foreach (string orderID in orderIDs)
{
    if (orderID.StartsWith("B"))
    {
        Console.WriteLine(orderID);
    }
}

B123
B177
B179

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值