当前位置:网站首页>2022年7月31日--使用C#迈出第一步--使用C#中的数组和foreach语句来存储和循环访问数据序列
2022年7月31日--使用C#迈出第一步--使用C#中的数组和foreach语句来存储和循环访问数据序列
2022-08-01 09:56:00 【DXB2021】
处理数据结构中称为数组的相关数据序列。 然后,学习如何循环访问序列中的每一项。
简介
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
边栏推荐
- STM32 Personal Notes - Embedded C Language Optimization
- Comprehensive experiment BGP
- SkiaSharp 之 WPF 自绘 五环弹动球(案例版)
- notes....
- Parsing MySQL Databases: "SQL Optimization" vs. "Index Optimization"
- Is the real database data of TiDB stored in kv and pd?
- SkiaSharp's WPF self-painted five-ring bouncing ball (case version)
- Optimal dazzle Oracle database support what kinds of type of the time and date
- 使用KeyStore生成证书
- redis
猜你喜欢
随机推荐
HoloView -- Tabular Datasets
[Software Architecture Mode] The difference between MVVM mode and MVC mode
Shell:条件测试操作
程序员如何学习开源项目,这篇文章告诉你
将Servlet项目改为SSM项目
BGP综合实验
experiment....
AC与瘦AP的WLAN组网实验
周鸿祎称微软抄袭 360 安全模式后发文否认;英特尔CEO基辛格回应市值被AMD超越:股价下跌是咎由自取|极客头条
PerViT: 神经网络也能像人类利用外围视觉一样观察图像!
ASP.NET Core 6 Framework Revealing Instance Demonstration [30]: Develop REST API with Routing
高级驾驶辅助系统ADAS简介
量化日常工作指标
Naive Bayes--Study Notes--Basic Principles and Code Implementation
CTFshow,命令执行:web37
《时代》杂志:元宇宙时代将改变世界
Visualization - Superset installation and deployment
DBPack SQL Tracing 功能及数据加密功能详解
AI篮球裁判火了,走步算得特别准,就问哈登慌不慌
RK3399平台开发系列讲解(内核入门篇)1.52、printk函数分析 - 其函数调用时候会关闭中断