从零开始学C#--三剑合璧

作者: Arabid | 来源:发表于2021-07-30 06:40 被阅读0次

本篇属于:从零开始学C# | 基础篇 | 05

先来聊聊天

假如你是一名老师,一次考试过后,你需要存储所有学生的成绩,后期进行分析与处理。
然后,你便定义了从stu1到stu49的整数型变量,存了近一个小时才完事。第二天当你需要调用调用时,你看着49个变量,陷入了沉思。。。


集体生活

事实上,C#早就考虑到了这种情况,它为我们提供了一种数据类型,用于方便的存储同类型的数据。
注意:数组属于引用类型,所以请使用new关键字来进行创建。
要声明数组,只需要在声明数据类型后加上一对中括号即可:

double[] score;
double[] score = new double[10]; //本语句指定了数组长度
double[] score = {93.0,77.0}; //本语句直接给数组赋值

花名册

这时你大概又要犯愁了,怎么访问里面的具体数据呢?其实,你可以通过索引访问他们。
索引类似于排队,只不过第一个人在第0号位,第二个人在第1号位...这样罢了,我们可以通过数组名[索引]来访问指定的数据:

double[] score = {93.0,77.0,59.0,79.5,99,97,85.5,83.5,81,87}; 
Console.WriteLine(score[0].ToString()); //访问输出第一个元素
Console.WriteLine(score[3].ToString()); //访问输出第四个元素

那这个数组有多么长呢?获取任何一个数组的Length属性即可。


ArrayList

在程序的第一行添加如下引用:

using System.Collections;

初始化:

ArrayList 名字 = new ArrayList();

这家伙很好的像我们解释了什么叫"海纳百川 有容乃大"。你可以使用Add()方法,随便往里面添加各种数据类型的数据,并且他还可以动态申请内存空间,简直跟Python的列表一模一样。
几个常见的操作:

ArrayList arm = new ArrayList();
arm.Add(1); //对你没看错添加什么都行
arm.Add("DPI");
arm.Add(System.Collections.ArrayList);
arm.Remove(1); //删除元素
arm.Sort(); //排序
arm.Clear(); //清空元素

不建议使用ArrayList进行新的开发,相反,我们建议使用List<T>类。


List<T>

在程序的第一行添加如下引用:

using System.Collections.Generic;

List<T>表示泛型集合,现在我们无需理解何为泛型,只需要在声明时将T换成你想要的元素类型即可。
例如:

List<double> score = new List<double>;

List<T>的几种基本方法与ArrayList的相同。


遍历

使用foreach循环遍历这种数据结构,基本语法

foreach (var item in 集合的名字)
{
    //对集合中每一个元素做的事情
}

配对

现在,我们还剩下最后一个问题--将学生的名字与成绩关联起来。
这时,我们就需要将学生的名字与成绩进行配对。
我们有两种最常见的数据类型:Dictionary<TKey,TValue>与HashTable类,我们在这里就先说HashTable类:

Hashtable score = new Hashtable();
score.Add("张小明",75);
score.Add("赵日地",96);
int zrd_score = score["赵日地"]; //获取赵日地的分数

这时我们称学生名字为键(Key),成绩为值(Value)。我们可以通过键查找值,故键名不允许重复,而值是可以的。

在使用foreach变量此类型的过程中,你得到的item是一个DictoryEntry类型,里面的Key与Value属性分别对应着字典中的Key与Value:

Hashtable score = new Hashtable();
score.Add("张小明",75);
score.Add("赵日地",96);
score.Add("李华",89);
score.Add("郑金星",62);
foreach (var item in score)
{
    Console.WriteLine(item.Key + "考了" + item.Vaule.ToString() + "分。");
}

即可输出每个学生的分数。
C#非常显著的一个特点就是硬类型、硬编码,归类方式非常严格,而不是像Python一样,鱼龙混杂的东西都可以放在一起。

相关文章

网友评论

    本文标题:从零开始学C#--三剑合璧

    本文链接:https://www.haomeiwen.com/subject/xjrqvltx.html