初学者入门web前端 C#基础知识:数组与集合

对于初学者,想要入门web前端,要有足够的信念和坚持,不然只会越走越远,我现在就深深的体会到。

我本是一个很拒绝代码的人,以前想过UI设计,但是在这段学习时间里,发现其实只要认真,代码并不是很难

所以我整理了一套前期学C#的知识点,对于后期学习JavaScript有很大的帮助。

一、数组与集合
数组:能存放任意多个同类型的数据

数据项:类型相同

①每一个数据型都有一个编号(索引或下标)

②数据的索引(下标)是一个int类型的数字

③从0开始,依次为数据中每一个数组项编号

数组的声明与赋值

声明:数据类型[ ] 变量名;

赋值:变量名 = new 数据类型[长度](长度为int类型)

数据型的读取与修改:读取:变量名[索引]
                                  修改 :变量名[索引] = 值;

读取数组的长度 变量名.Length 返回类型为int

合并书写:数据类型[ ] 变量名 = new 数据类型[长度];
(数组的声明与赋值, 数据型的读取与修改, 读取数组的长度)

数组项的默认值:一个数组创建后,它每一个数组项的值为数组项类型的默认值。

常见默认值:数字类型 默认值为0
                     bool类型 默认值为false
                     char类型 默认值为\0
                     string类型 默认值为mull(表示没有任何数据)

示例

创建一个长度为3的字符串数组,然后依次为它的每一项赋值为a、b、c、,最后,输出该数组的长度

合并书写

string[ ] strs = new string[3];
strs[0] = "a";
strs[1] = "b";
strs[2] = "c"; sring[ ] strs = {"a","b","c"};
Console.Write(strs.Length); Console.Write(strs.Length);

int[ ] numbers = new int[5];
numbers[0] = 3;
numbers[1] = -2;
numbers[2] = numbers[0] * 2 + numbers[1];
Console.WriteLine(numbers[3]);
Console.WriteLine(numbers.Length); 控制台输出4,5

二、数组的定长性

一个数组创建后,它的长度固定不变

int[ ]nums = new int[5];
nums = new int [6];          不再使用上一个数组,重新建立一个长度为5的数组

数组适用于数据数量固定的场景

适合使用数组的场景:保存100以内的所有质数
保存太阳系中所有已知行星的质量
保存标准扑克中的所有牌面数据
保存一个星期的所有日期
其他定长的数据场景

不适合使用数组的场景:保存一个班学生信息
保存一年中的所有日期
保存斗地主游戏中某玩家的手牌数据
保存游戏某玩家的装备信息
其他不定长的数据场景

三、数组的遍历

重复行为:输出一个数组项

代码书写格式:Console.WriteLine(arrays [?]);其中?为索引

int i = ?;
变量i的变化范围:0~arrays,Length-1 也可以写成:i < arrays.Length

遍历

定义:是指从数组的第一项开始,依次取完整数组所有项

①实现数组的遍历,可以使用循环

②循环变量从0开始,依次取到数组的最大下标(数组的长度-1)

③在循环体中,使用循环体变量作为下标,即可取出数组每一项的值

for (int i = 0; i < arrays.Length; i++)
{
Console.WriteLine(arrays[i]);
}

完整实现代码

Console.Write("亲输入数组的长度:");
int len = int,Parse(Conesole,ReadLine());
//根据用户的输入创建数组,并遍历数组为其每一项赋值
int[ ] nums = 0; i < nums.Length; i++
{
Console,Write("请输入数组第"+ (i + 1) + "项的值:");
nums[i] = int.Parse(Console.ReadLine());
}
//遍历数组nums,依次输出数组中的值
Console.Write("数组的所有项是:");
for (int i = 0; i < nums.Length; i++)
{
Console.Write(nums[i]);
if (i < nums.Length - 1)//不是最后一项
Console.Write(",");//输出一个逗号分隔

四、交换排序

根据输入的数进行顺序排序:简化排序:如何把最小的数字,放置到数组索引未0的位置

实现方法:把第一个位置的数字拿出来依次和后面位置的数字进行比较,如果比后面位置数字大,则交换位置

全部代码实现

for (int i = 0; i < numbers.Count - 1; i++)
{
for (int j = i + 1; j < numbers.Count; j++)
{
if(numbers [i]>numbers [j])
{
int temp = numbers[i];
numbers[i] = numbers [j];
numbers[j] = temp;
}
}
}

  

五、数组分析器

代码示例:

Console.Write("请输入数组的长度:");
int n = int.Parse(Console.ReadLine());
int[] nums = new int[n];
{

for (int i = 0; i < nums.Length; i++)
{
Console.Write("请输入数组的第" + (i + 1) + "项:");
nums[i] = int.Parse(Console.ReadLine());
}
Console.Clear();
}
for (int i = 0; i < nums.Length - 1; i++)
{
for (int j = i + 1; j < nums.Length; j++)
if (nums[i] > nums[j])
{
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
Console.Write("你输入的数字从小到大的排序是:");
for (int i = 0; i < nums.Length; i++)
{
Console.Write(nums[i] + " ");
}
Console.ReadLine();
{
Console.Write("你输入的数字其中是奇数的是:");
for (int i = 0; i < nums.Length; i++)
if (nums[i] % 2 != 0)
{

{
Console.Write(nums[i] + " ");
}
}
Console.ReadLine();
}
Console.Write("你输入的数其中是质数的是:");
for (int i = 0; i < nums.Length; i++)
{

bool isFind = false;

 for (int j = 2; j < nums[i]; j++)

{
if (nums[i] % j == 0)
{
isFind = true;
break;
}

}

if (isFind)
{

}
else
{
Console.Write(nums[i] + " ");
}
}
Console.ReadLine();

六、集合

数据:定长(用于保存固定数量的数据)占内存少 遍历速度快

集合:不定长(保存的数据数量,可以在程序的执行过程中,不断的发生变化) 占内存多 遍历速度慢

List集合

创建:定义:List<数据类型> 变量名;

赋值:变量名 = new List<数据类型>(); //集合是不定长的所以赋值是无需指定长度,赋值后长度可以变化

初始化器:变量名 = new List<数据类型>{元素1,元素2,···,元素n,};

操作

1.添加元素:变量名.Add(要添加的数据);

List<int> nums = new List<int> {3,5,7};
nums.Add(1);
nums.Add(3);

2.插入元素:向集合的指定位置插入一个新的元素

变量名.Insert(索引,要插入的数据);

List<int> nums = neew List<int> {3,5.7};
nums.Insert(1,10);

3.删除元素:变量名.RemoveAT(索引);删除指定索引位置的元素

变量名.Remove(数据);
删除集合中与填写的数据相同的第一个匹配项

List<int> nums = new List<int> {1,1,2,3,5};
nums.RemoveAt(2);
nums.Remove(1);

4.修改元素:修改元素中某一个值

变量名[索引] = 值;

代码实现

int maxIndex = numbers.Count - 1;
Console.Write("请您输入一个要删除的下标(0-"+maxIndex +")");
int index = int.Parse(Console.ReadLine());
if (index < 0 || index > maxIndex)
{
Console.WriteLine("呀!你输入有误,下标超出范围了,按回车键继续");
Console.ReadLine();
}
else
{
Console.WriteLine("请你重新输入一个新的数字");
int newNum = int.Parse(Console.ReadLine());
numbers[index] = newNum;
}

5.获取元素数量:集合的长度 变量名.Count

总结:在功能上,数组能实现的所有功能集合都能实现反之,集合能实现的某些功能,数据难以实现(数据, 集合, List集合)

c#的集合类型

List Queue Stack LinkedList HashSet 其他

七、foreach循环

代码格式

foreach(数据类型) 变量 in 数组或集合)
{
循环体
}

从数组或集合中,依次取出每一项的数据没取出一项数据,酒吧数据赋值个循环变量每一次赋值后,运行一次循环体

代码示例

foreach循环现实:效率高

foreach (int item in numbers)
{
Console.WriteLine(item);
}

for循环现实:效率低

for ( int i = 1; i < numbers.Length; i++)
{
Console.WriteLine(numbers[i]);
}

foreach和for的对比

foreach:只用于遍历,不能更改循环目标,遍历速度快,执行效率高
for:可以用于任何形式的重复行为,在循环体重,可以进行任何操作,遍历速度慢,执行效率低

如需要遍历和组合,并且遍历的过程中只需要读取而不会更改,使用foreach循环最合适,反之,则根据需要,选择其他循环(foreach, for)

八、集合管理器

代码:

ite(item + "\t");
}
Console.WriteLine();

}

Console.WriteLine("*********************************************************");
Console.WriteLine("1.添加数据");
Console.WriteLine("2.删除数据");
Console.WriteLine("3.修改数据");
Console.WriteLine("4.升序排序");
Console.WriteLine("5.退出程序");
Console.WriteLine();
Console.Write("\t" + "请您老选择一个序号(1-5):");
string input = Console.ReadLine();

if (input == "5")

{
break;
}
else if (input == "1")
{
Console.Write("请输入要添加的数字:");
int num = int.Parse(Console.ReadLine());
numbers.Add(num);
}
else if (input == "2")
{
Console.Write("请你输入要删除的数字:");
int num = int.Parse(Console.ReadLine());
numbers.Remove(num);
}
else if (input == "3")
{
if (numbers.Count == 0)
{
Console.Write("集合中没有要修改的元素哦?按回车键擦亮眼睛重新选择");
Console.ReadLine();

}
else
{
int maxIndex = numbers.Count - 1;
Console.Write("请您输入一个要删除的下标(0-"+maxIndex +")");
int index = int.Parse(Console.ReadLine());
if (index < 0 || index > maxIndex)
{
Console.WriteLine("呀!你输入有误,下标超出范围了,按回车键继续");
Console.ReadLine();
}
else
{
Console.WriteLine("请你重新输入一个新的数字");
int newNum = int.Parse(Console.ReadLine());
numbers[index] = newNum;
}
}
}
else if (input == "4")
{

for (int i = 0; i < numbers.Count - 1; i++)
{
for (int j = i + 1; j < numbers.Count; j++)
{
if(numbers [i]>numbers [j])
{
int temp = numbers[i];
numbers[i] = numbers [j];
numbers[j] = temp;
}
}
}
}
else
{
}
Console.Clear();
}

时刻鼓励自己:

 

       埋头读书,抬头做人!

 

  不登高山不知天之高也,不临深溪不知地之厚也

 

  懦弱的人只会裹足不前,莽撞的人只能引为烧身,只有真正勇敢的人才能所向披靡

 

  我们这个世界,从不会给一个伤心的落伍者颁发奖牌。

 

  海浪的品格,就是无数次被礁石击碎又无数闪地扑向礁石、

 

  鞋底磨穿了,不等于路走到了头。

 

  松驰的琴弦,永远奏不出时代的强音。

 

  躺在被窝里的人,并不感到太阳的温暖。

 

  不安于现状,不甘于平庸,就可能在勇于进取的奋斗中奏响人生壮美的乐间。

 

  不去耕耘,不去播种,再肥的沃土也长不出庄稼,不去奋斗,不去创造,再美的青春也结不出硕果。

时间: 2024-08-08 13:59:26

初学者入门web前端 C#基础知识:数组与集合的相关文章

Web前端之基础知识

学习web前端开发基础技术需要掌握:HTML.CSS.Javascript 1.HTML是网页内容的载体 内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字.图片.视频等. 2.CSS样式是表现 就像网页的外衣,比如:标题字体.颜色变化.为标题加入背景图片.边框等. 所有这些用来改变内容外观的东西称之为表现. 3.JavaScript是用来实现网页上的特效效果 比如:鼠标滑过弹出下拉菜单.鼠标滑过表格的背景颜色改变.焦点新闻的轮换. 可以理解为:有动画的.有交互的一般都用JavaSc

前端C#基础:数组与集合

学习web前端是一个带有一点小乐趣的过程.它是与理科思维比较相关联的,所以学习好他就必须掌握牢固的基础,对基础知识的细节要了解.下面我就总结两个我们经常用到,但又因为他们定义与用法都比较相近,而经常搞混的知识点:集合与数组. 数组与集合 相同点: 1.一个数组类型变量可以存放多个同类型的数据.2.数组项的编号称为索引或下标.3.数组的索引(下标)是一个int类型的数字,从0开始.   依次为每一个数组项编号. 4. 数组(集合)项:  变量名[ n ] 5.数组(集合)项的读取: 变量名[ 索引

web前端开发基础知识随笔

1. 常见浏览器的内核 Mozilla Firefox使用的是Gecko内核,C++开发的开源布局引擎. Internet Explorer使用的是Trident,由微软开发和维护的浏览器渲染引擎,非开源但是开放的接口比较多和灵活,因此产生了是Trident内核而非IE的浏览器,比如国内的大部分浏览器(所谓双核只不过是Trident加上其他开源浏览器内核,简单的说就是两个渲染引擎,根据页面的一些标识浏览器选择使用哪种引擎渲染并将最终结果呈现给用户). Webkit,Safar所使用的内核及chr

WCF入门教程:WCF基础知识问与答(转)

学习WCF已有近两年的时间,其间又翻译了Juval的大作<Programming WCF Services>,我仍然觉得WCF还有更多的内容值得探索与挖掘.学得越多,反而越发觉得自己所知太少,直到现在,我也认为自己不过是初窥WCF的门径而已. 学以致用”,如果仅仅是希望能够在项目中合理地应用WCF,那么对于程序员而言,可以有两种选择,一种是“知其然而不知其所以然”,只要掌握了WCF的基础知识,那么对于一般的应用就足够了.要做到这一点就很容易了,微软秉承了一贯的方式,将WCF这门技术优雅地呈现给

Web前端开发基础:HTML、CSS、JavaScript分别实现什么功能?

相信正在学习Web前端知识的小伙伴们都知道,学习Web前端开发基础技术需要掌握:HTML.CSS.JavaScript,那么这三个都是分别实现什么功能的呢?下面和小编一起来看看吧! 一.HTML是网页内容的载体 内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字.图片.视频等. 在这里小编建了一个前端学习交流扣扣群:132667127,我自己整理的最新的前端资料和高级开发教程,如果有想需要的,可以加群一起学习交流 二.CSS样式是表现 就像网页的外衣,比如:标题字体.颜色变化.为标题

、web前端的这么知识应该是怎样的一个知识体系架构?

.web前端的这么知识应该是怎样的一个知识体系架构?之前我以为可以以W3C为纲要,把W3C的东西学会了就够了.后来发现我错了,W3C还不全面. 真正全面的覆盖了web前端知识体系的东西是——浏览器内核——这并不是说让你去详细了解浏览器内核.做出一个浏览器.浏览器是web前端代码运行的一个平台,浏览器内核里有哪些模块,我们就需要去学习哪些东西.详细的先不说,以后有机会再分享.

web前端——html基础笔记 NO.1

HTML+CSS基础课程 Html和CSS的关系 学习web前端开发基础技术需要掌握:HTML.CSS.JavaScript语言.下面我们就来了解下这三门技术都是用来实现什么的: 1. HTML是网页内容的载体.内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字.图片.视频等. 2. CSS样式是表现.就像网页的外衣.比如,标题字体.颜色变化,或为标题加入背景图片.边框等.所有这些用来改变内容外观的东西称之为表现. 3. JavaScript是用来实现网页上的特效效果.如:鼠标滑过弹

Web前端开发基础 第一天(Html和CSS)

学习web前端开发基础技术需要掌握:HTML.CSS.JavaScript语言.下面我们就来了解下这三门技术都是用来实现什么的: 1. HTML是网页内容的载体.内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字.图片.视频等. 2. CSS样式是表现.就像网页的外衣.比如,标题字体.颜色变化,或为标题加入背景图片.边框等.所有这些用来改变内容外观的东西称之为表现. 3. JavaScript是用来实现网页上的特效效果.如:鼠标滑过弹出下拉菜单.或鼠标滑过表格的背景颜色改变.还有焦点

编程入门:C语言基础知识全网超全不用到处找了!(文末附清单)

你背或者不背,干货就在那里,不悲不喜 你学或者不学,编程就在那里,不来不去 听到这话的你是否略感扎心? 编程入门:C语言基础知识全网超全不用到处找了!(文末附清单)01基础知识 计算机系统的主要技术指标与系统配置. 计算机系统.硬件.软件及其相互关系. 微机硬件系统的基本组成. 包括:中央处理器(运算器与控制器),内存储器(RAM与ROM),外存储器(硬盘.软盘与光盘),输入设备(键盘与鼠标)输出设备(显示器与打印机).如果大家如果在自学遇到困难,想找一个C++的学习环境,可以加入我们的C++学