C#常见技能_数组

news2024/11/28 14:11:27

前几天一个学员在学习C#与数组交互时,也不知道数组可以用来做什么 。下面我们就详细讲讲C# 和数组交互的相关知识。

在C#编程中,数组是一种非常重要的数据结构,它可以存储多个相同类型的数据,并且使用索引来访问这些数据。在实际应用中,我们经常需要在数组和其他结构之间传递数据和消息,以实现功能的协作和交互。本文将介绍如何在C#中实现数组和其他结构之间的交互,并提供一些实用的示例。

一、数组基础

在C#中,数组是一种由相同类型元素组成的集合。数组可以通过声明和初始化来创建,并且可以使用索引来访问其中的元素。以下是一个示例,演示了如何声明、初始化和访问一个整数数组:

public class MyClass

{

public static void Main(string[] args)

{

int[] numbers = new int[5];

numbers[0] = 10;

numbers[1] = 20;

numbers[2] = 30;

numbers[3] = 40;

numbers[4] = 50;

for (int i = 0; i < numbers.Length; i++)

{

Console.WriteLine($"The element at index {i} is {numbers[i]}");

}

}

}

在上面的代码中,我们声明了一个包含5个整数元素的数组,并将其初始化为0。然后,我们分别将数组中的前5个元素赋值为10、20、30、40和50。接着,我们使用for循环遍历数组,并使用索引访问每个元素并输出其值。

二、数组和方法之间的交互

在C#中,我们可以将数组作为参数传递给方法,并从方法中返回数组。以下是一个示例,演示了如何在方法和数组之间传递数据:

public class MyClass

{

public static void Main(string[] args)

{

int[] numbers = { 10, 20, 30, 40, 50 };

int sum = GetSum(numbers);

Console.WriteLine($"The sum of the elements in the array is {sum}");

}

public static int GetSum(int[] numbers)

{

int sum = 0;

for (int i = 0; i < numbers.Length; i++)

{

sum += numbers[i];

}

return sum;

}

}

在上面的代码中,我们声明了一个整数数组,并将其初始化为包含5个元素的数组。然后,我们调用GetSum方法,并将数组作为参数传递给该方法。GetSum方法接收一个整数数组参数,并计算数组中所有元素的总和。最后,GetSum方法返回计算得到的总和,并将其赋值给sum变量。在Main方法中,我们输出计算得到的总和。

三、数组和循环结构之间的交互

在C#中,我们可以使用循环结构遍历数组,并根据需要执行不同的操作。以下是一个示例,演示了如何在循环结构和数组之间交互:

public class MyClass

{

public static void Main(string[] args)

{

int[] numbers = { 10, 20, 30, 40, 50 };

for (int i = 0; i < numbers.Length; i++)

{

if (numbers[i] % 2 == 0)

{

Console.WriteLine($"The element at index {i} is even");

}

else

{

Console.WriteLine($"The element at index {i} is odd");

}

}

}

}

在上面的代码中,我们声明了一个整数数组,并将其初始化为包含5个元素的数组。然后,我们使用for循环遍历数组,并判断每个元素是否为偶数。如果元素为偶数,则输出“索引为i的元素是偶数”,否则输出“索引为i的元素是奇数”。

四、数组和选择结构之间的交互

在C#中,我们可以使用选择结构根据条件执行不同的操作。以下是一个示例,演示了如何在选择结构和数组之间交互:

public class MyClass

{

public static void Main(string[] args)

{

int[] numbers = { 10, 20, 30, 40, 50 };

int sum = 0;

for (int i = 0; i < numbers.Length; i++)

{

if (numbers[i] % 2 == 0)

{

sum += numbers[i];

}

}

if (sum > 0)

{

Console.WriteLine($"The sum of even elements in the array is {sum}");

}

else

{

Console.WriteLine("There are no even elements in the array");

}

}

}

在上面的代码中,我们声明了一个整数数组,并将其初始化为包含5个元素的数组。然后,我们使用for循环遍历数组,并计算所有偶数元素的总和。如果总和大于0,则输出“偶数元素的总和是sum”,否则输出“数组中没有偶数元素”。

五、数组和对象之间的交互

在C#中,我们可以使用对象来封装数据和方法,并将其作为参数传递给其他方法或存储在数组中。以下是一个示例,演示了如何在数组和对象之间交互:

public class Student

{

public string Name;

public int Age;

public Student(string name, int age)

{

this.Name = name;

this.Age = age;

}

}

public class MyClass

{

public static void Main(string[] args)

{

Student[] students = new Student[3];

students[0] = new Student("Tom", 18);

students[1] = new Student("Jerry", 19);

students[2] = new Student("Mary", 20);

foreach (Student student in students)

{

Console.WriteLine($"Name: {student.Name}, Age: {student.Age}");

}

}

}

在上面的代码中,我们定义了一个Student类,并在该类中定义了姓名和年龄属性。然后,在Main方法中,我们声明了一个包含3个元素的Student数组,并将其初始化为3个Student对象。最后,我们使用foreach循环遍历数组,并输出每个学生的姓名和年龄。

六、数组和文件之间的交互

在C#中,我们可以使用文件读写操作来读取和写入数组数据。以下是一个示例,演示了如何在数组和文件之间交互:

public class MyClass

{

public static void Main(string[] args)

{

int[] numbers = { 10, 20, 30, 40, 50 };

// 写入数据到文件

using (StreamWriter writer = new StreamWriter("numbers.txt"))

{

foreach (int number in numbers)

{

writer.WriteLine(number);

}

}

// 从文件读取数据

using (StreamReader reader = new StreamReader("numbers.txt"))

{

List<int> list = new List<int>();

string line;

while ((line = reader.ReadLine()) != null)

{

list.Add(int.Parse(line));

}

int[] newArray = list.ToArray();

Console.WriteLine("The elements in the array are:");

foreach (int number in newArray)

{

Console.WriteLine(number);

}

}

}

}

在上面的代码中,我们声明了一个整数数组,并将其初始化为包含5个元素的数组。然后,我们使用StreamWriter类将数组中的每个元素写入到名为“numbers.txt”的文件中。接着,我们使用StreamReader类从“numbers.txt”文件中读取数据,并将其存储在List<int>对象中。最后,我们将List<int>转换为int[]数组,并输出该数组中的所有元素。

部分项目图片:

七、结论

在C#编程中,数组是一种非常重要的数据结构,它可以存储多个相同类型的数据,并且使用索引来访问这些数据。通过本文的介绍,我们了解了如何在C#中实现数组和其他结构之间的交互,并提供了一些实用的示例。希望这篇文章能够帮助你更好地理解和应用数组。。

文章如果对你有用,麻烦点赞,评论~
最近很多小伙伴找我,说想要一些学习资料,然后我根据自己从业二十年经验,精心整理了一份「上位机编程入门到高级教程+工具包」,点个关注,限时分享给大家,以下是领取入口:

 点击领取上位机编程全套入门教程+工具

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/620216.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5.2.7 因特网控制报文协议ICMP

5.2.7 因特网控制报文协议ICMP 我们知道因特网的技术核心是IP数据报&#xff0c;IP数据报的最大特点是无连接不可靠&#xff0c;但实际中因特网中也会存在通信线路或者是处理器的故障、路由器拥塞等等使得无法接收或者处理数据报&#xff0c;路由表也误导导致出现路由环路等原…

微软MFC技术运行机制

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天总结一下微软MFC技术运行机制。 很多初学者误以为VC开发必须使用MFC&#xff0c;其实不一定的。MFC的使用只能是提高程序在某些情况下的开发效率&#xff0c;而不能替代整个Win32程序设计。我认为我们有…

python grpc使用示例

1. grpc简介 1.1 概述 gRPC是搭建分布式应用接口和客户端的框架。在 gRPC 中&#xff0c;客户端应用程序可以直接调用不同机器上的服务器应用程序上的方法&#xff0c;就像它是本地对象一样&#xff0c;可以更容易创建分布式应用程序和服务。与许多 RPC 系统一样&#xff0c;gR…

AI绘画MidJourney 酷炫艺术风格效果,总有一款你喜欢

文 / 高扬 今天六一儿童节&#xff0c;祝各位大朋友节日快乐。 这次以儿童为主题&#xff0c;看看MidJourney的绘画风格&#xff0c;在这里&#xff0c;我使用的默认V5.1版本。 图画场景是一个男孩和一个女孩在田野玩耍&#xff0c;对应的英文是&#xff1a;A boy and a girl a…

使用PyQT实现模拟表盘时钟的显示效果

代码 class clockThread(QThread):update_ui_signal pyqtSignal(str)def __init__(self, window):super(clockThread, self).__init__()# 信号绑定槽函数self.update_ui_signal.connect(self.draw_time)self.hour 0self.minute 0self.second 0self.window windowself.win…

数据结构与算法·第6章【树】

基本操作 树的相关定义 树的深度&#xff08;高度&#xff09;&#xff1a;树中叶子结点所在的最大层次 森林&#xff1a; m m m棵互不相交的树的集合 二叉树 二叉树或为空树&#xff0c;或是由一个根结点加上两棵分别称为左子树和右子树的、互不交的二叉树组成。 性质 二…

JavaCV音视频开发宝典:使用JavaCV读取海康平台或海康网络摄像头sdk回调视频TS码流并解析预览图像

《JavaCV音视频开发宝典》专栏目录导航 《JavaCV音视频开发宝典》专栏介绍和目录 ​ 前言 两年前博主写了如何利用JavaCV解析各种h264裸流,《JavaCV音视频开发宝典:使用javacv读取GB28181、海康大华平台和网络摄像头sdk回调视频码流并解析预览图像》,但是随着时间变化,各…

企业邮箱如何设置邮件审核

有的时候对外给客户或合作伙伴等发送邮件需要领导审核后再发&#xff0c;以前都是先发给领导&#xff0c;领导审核以后再重新发给客户&#xff0c; 这样的流程太过繁琐。 新的邮件审核功能既能满足审核需求&#xff0c;又避免了重复发信&#xff0c;可以极大提高工作效率。 设…

使用VitePress静态网站生成器创建组件库文档网站并部署到GitHub

Vue3TSVite开发组件库并发布到npm 网站在线预览&#xff1a; Vue Amazing UI | Amazing UI Components LibraryAmazing UI 组件库https://themusecatcher.github.io/vue-amazing-ui/参考文档&#xff1a; VitePress 目录 一、安装依赖及配置 1、安装 vitepress 2、在 p…

想要精通算法和SQL的成长之路 - 反转链表

想要精通算法和SQL的成长之路 - 反转链表 前言一. 反转链表 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 反转链表 原题链接 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 思路如下&#xff1a; 我们可以通过一次遍历&#xff…

该怎么用设计测试用例测网上银行转账?

目录 前言 1、网上银行转账是怎么测的&#xff0c;设计一下测试用例。 回答思路&#xff1a; 2、测试工作的流程?缺陷状态有什么?设计测试用例有几种方法&#xff1f; 修改完以后&#xff0c;有两种处理情况&#xff1a; 3、在项目中找到的经典BUG是什么&#xff1f; 4、定期…

kali系统渗透

用kali远程ssh时&#xff0c;如果不能的话 按照以下方法 ┌──(root㉿kali)-[~]└─# mkdir ~/.ssh┌──(root㉿kali)-[~]└─# vim ~/.ssh/configHost *HostkeyAlgorithms ssh-rsaPubkeyAcceptedKeyTypes ssh-rsa msfconlole -q //进入马上发不显示内容&#xff0c;所以加…

编程实现人脸识别

1.更改url 用翔云平台下的人脸识别的API文档 把他贴到url中&#xff1a; 2.定义参数 &#xff08;根据平台给定的这些串口接收参数来定义&#xff09; key和secret在这里找&#xff1a; 3.指定post内容 把这部分定义成一个postString 4.字符串的拼接 sprintf函数调用的主…

使用粒子群优化算法(PSO)辨识锂电池二阶RC模型参数(附MATLAB代码)

目录 一、原理部分 二、代码详解部分 三、结果及分析 一、原理部分 PSO算法由美国学者于 1995 年提出&#xff0c;因其算法简单、效果良好&#xff0c;而在很多领域得到了广泛应用。该算法的起源是模拟鸟群的觅食过程&#xff0c;形成一种群体智能搜索算法。 其核心是&#…

使用Flask高效构建Web应用

1、聊聊Flask框架 Flask官方文档 Flask是Armin ronacher基于Python开发的微型Web框架&#xff0c;诞生于2010年&#xff0c;它依赖于jinja2模板和Werkzeug WSGI服务。Flask的核心简单易于扩展&#xff0c;它不会替你做出太多决策比如使用何种数据库或模板引擎&#xff0c;这些都…

抖音seo矩阵系统源码解析

抖音SEO矩阵系统源码是一种用于优化抖音视频内容的工具&#xff0c;可以帮助用户提高抖音视频的搜索排名和流量&#xff0c;从而增加视频曝光和转化率。该系统包括两部分&#xff0c;即数据收集和分析模块以及SEO策略和实施模块。 数据收集和分析模块主要负责从抖音平台上收集…

认识功能安全

01、什么是功能安全 1-背景简介 由于汽车的复杂性&#xff0c;整个行业正在致力于提供符合安全要求的零部件系统。比如&#xff0c;线控油门系统&#xff0c;当驾驶员踩下油门踏板&#xff0c;踏板上的传感器向控制器发送信号时&#xff0c;控制器会综合分析如发动机转速、车…

ERP系统实施,8个需要了解的关键绩效指标

实施ERP系统是一项复杂的、耗时的工作&#xff0c;但它也代表了企业重新思考其战略、目标和流程的绝佳机会。成功的ERP实施可以激发创新&#xff0c;改善企业的所有领域。例如&#xff0c;通过集中企业各部门不断增长的财务和业务数据&#xff0c;所有的决策者都在同一个页面上…

非煤矿山电子封条系统算法方案 opencv

非煤矿山电子封条系统算法部署方案是基于pythonopencv网络模型Ai视频图像识别技术&#xff0c;非煤矿山电子封条系统算法部署方案对出入井人员、人员变化及非煤矿山生产作业状态等状况&#xff0c;及时发现处理异常动态将自动发出警报。OpenCV的全称是Open Source Computer Vis…

亲身经历告诉你,0基础转行学Python,毕业就能15000

对生活现状的不满&#xff0c;对自己浑浑噩噩的厌恶&#xff0c;以及对互联网行业的憧憬&#xff0c;让我下定决心选择去黑马程序员开启转行之旅。 学科 | Python大数据开发 薪资 | 15000 时间总是在你回忆往事时才会觉得短暂&#xff0c;来黑马之前觉得六个月将是一段很漫长…