有关c#的学习笔记整理与心得
【 塔 · 第 一 条 约 定 】
整理c#:Array Arraylist List Hashtable Dictionary Stack Queue等
- Array 的容量是固定的,而 ArrayList 的容量是根据需要自动扩展的。ArrayList 提供添加、插入或移除某一范围元素的方法。
- ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处:
动态的增加和减少元素
实现了ICollection和IList接口
灵活的设置数组的大小
eg:(array)
- 在声明数组的同时给其分配空间:
数组类型[] 数组名=new 数组类型[数组长度]
-声明数组,分配空间和赋值一同完成
数组类型[]数组名={值1,值2,值3}
例如:int[]arr={1,2,3}等价于int[]arr=new int[]{1,2,3}
eg:(arraylist) - ArrayList arrl = new ArrayList() 个数不用指定
- arrl.Add('')
arrl.Remove('')
arrl.RemoveAt('')
arrl.RemoveRange(1, 3) 移除一到三号元素
arrl.Sort() 升序
arrl.Reverse() 反转
arrl.Clear() 清空
- List
eg:(List)
- List mList = new List() 其中T为声明的种类
T为列表中元素类型,现在以string类型作为例子:
List<string> mList = new List<string>();
- List testList =new List (IEnumerable collection) 以一个集合为参数创建List
string[] temArr = { "Ha", "Hunter", "Tom", "Lily", "Jay", "Jim", "Kuku", "Locu"};
List<string> testList = new List<string>(temArr);
- List. Add(T item)添加一个元素
- List. AddRange(IEnumerable collection)添加一组元素
string[] temArr = {"Ha","Hunter","Tom","Lily","Jay","Jim","Kuku","Locu"};mList.AddRange(temArr);
- Insert(intindex, T item);在index位置添加一个元素
mList.Insert(1,"Hei");
- 判断某个元素是否在该List中:
List. Contains(T item)返回true或false
if(mList.Contains("Hunter"))
{
Console.WriteLine("There is Hunter in the list");
}
else
{
mList.Add("Hunter");
Console.WriteLine("Add Hunter successfully.");
}
(List与arraylist差不多)
4. 哈希表(Hashtable)
eg:
- 命名空间:System.Collections
- Hashtable hshTable = new Hashtable() 创建哈希表
- hshTable .Add("Person1", "zhanghf") 往哈希表里添加键值对
- hshTable .Clear() 移除哈希表里所有的键值对
- hshTable .Contains("Person1") 判断哈希表里是否包含该键
- string name = (string)hshTable["Person1"].ToString() 取哈希表里指定键的值
- hshTable.Remove("Person1") 删除哈希表里指定键的键值对
- IDictionaryEnumerator en = hshTable.GetEnumerator() 遍历哈希表所有的键,读出相应的值
(也和那几个具体用法差不多)
- (Dictionary)
- 结构:Dictionary<[key], [value]>
- 他的特点是存入对象是需要与[key]值一一对应的存入该泛型
通过某一个一定的[key]去找到对应的值
eg:
//实例化对象
Dictionary<int, string> dic = new Dictionary<int, string>();
//对象打点添加
dic.Add(1, "one");
dic.Add(2, "two");
dic.Add(3, "one");
//提取元素的方法
string a = dic[1];
string b = dic[2];
string c = dic[3];
//1、2、3是键,分别对应“one”“two”“one”
//上面代码中分别把值赋给了a,b,c
- 堆栈(Stack)
- 堆栈(Stack)代表了一个后进先出的对象集合。当您需要对各项进行后进先出的访问时,则使用堆栈。当您在列表中添加一项,称为推入元素,当您从列表中移除一项时,称为弹出元素。
- Count 获取 Stack 中包含的元素个数。
- public virtual void Clear();
从 Stack 中移除所有的元素。 - public virtual bool Contains( object obj );
判断某个元素是否在 Stack 中。 - public virtual object Peek();
返回在 Stack 的顶部的对象,但不移除它。 - public virtual object Pop();
移除并返回在 Stack 的顶部的对象。 - public virtual void Push( object obj );
向 Stack 的顶部添加一个对象。 - public virtual object[] ToArray();
复制 Stack 到一个新的数组中。
eg:
Stack st = new Stack();
st.Push('A');
st.Push('M');
st.Push('G');
st.Push('W');
- 队列(Queue)
- 队列(Queue)代表了一个先进先出的对象集合。当您需要对各项进行先进先出的访问时,则使用队列。当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队。
(与堆栈差不多)
整理C#:for、foreach、while、switch等
- for
和c差不多 - foreach:
foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用。
- C#中:foreach 针对引用类型地址的访问
如果当前方法中在访问当前引用类型的集合,在新调用的 方法中在修改当前集合的地址时,当前地址会依然存在,不符合C#中的对象的生命周期,一旦当前文件的引用地址被替换掉了,当前对象的空间就消失废弃了,但是,foreach(){
}会保留原先的集合的地址<地址应该也是有生命周期的>foreach 和for 就不一样! - 语法格式如下:
foreach(type identifier in expression)
{
embedded-statement
}
type(类型)和identifier(标识符)用于声明循环变量,expression(表达式)对应集合。
int[]arr=newint[]{0,1,2,3,4};
foreach(int i in arr)
{
Console.Write(i);
}
- while
int i=0;
while(i<arr.Length)
{
Console.Write(arr[i] + " ");
i++;
}
Console.WriteLine();
- switch
(和c差不多)
借了个栗子:
Console.Write("请输入分数(整数): ");
int score_in = Convert.ToInt32(Console.ReadLine());
if (score_in < 0) score_in = -100;//防止-9到-1被归为不及格
switch(score_in/10)
{
case 10:
case 9: Console.WriteLine("优秀"); break;
case 8: Console.WriteLine("良好"); break;
case 7:
case 6: Console.WriteLine("及格"); break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0: Console.WriteLine("不及格"); break;
default: Console.WriteLine("输入错误!"); break;
}
有关c#的学习笔记整理与心得的更多相关文章
- python学习笔记整理——字典
python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...
- Deep Learning(深度学习)学习笔记整理系列之(五)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(八)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(七)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(六)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(四)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(三)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(二)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(一)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-0 ...
随机推荐
- JQuery制作网页——第九章 表单验证
1. 表单验证:减轻服务器的压力.保证输入的数据符合要求: 2. 常用的表单验证:日期格式.表单元素是否为空.用户名和密码.E-mail地址.身份证号码等: 3. 表单验证的思路: 1. ...
- 关于一个flask的服务接口实战(flask-migrate,flask-script,SQLAlchemy)
前言 最近接到一个接收前端请求的需求,需要使用python编写,之前没有写过python,很多技术没有用过,在这里做一个学习记录,如有错误,请不了赐教. Flask Api文档管理 使用Falsk A ...
- flume搭建新手测试环境
硬件环境: 腾讯云,两台服务器8G 双核 软件环境: flume1.8.jdk1.8,centos6 第一次搭建也是各种找文件,只知道flume是日志抓取服务,也听说了非常稳定强大的服务,正好公司需要 ...
- hadoop的自定义分组实现 (Partition机制)
hadoop开发中我们会遇到类似这样的问题,比如 如何将不同省份的手机号分别输出到不同的文件中,本片文章将对hadoop内置的Partition类进行重写以解决这个问题. MapReduce的使用者通 ...
- Flask后台管理
管理后台主页 需求 为后台主页提供专门的视图函数 需要带入当前管理员用户相关信息以便在界面进行展示 代码实现 在 modules/admin/views.py 文件中添加视图函数 @admin_blu ...
- N对数的排列问题 HDU - 2554
N对数的排列问题 HDU - 2554 有N对双胞胎,他们的年龄分别是1,2,3,……,N岁,他们手拉手排成一队到野外去玩,要经过一根独木桥,为了安全起见,要求年龄大的和年龄小的排在一起,好让年龄大的 ...
- java 优化版 用接口实现(输入两个数选择实现加减乘除运算)
//利用java接口实现计算器,实现加减乘除的功能 import java.util.Scanner; class Test { public static void main(String[] ar ...
- 嘿,C语言(持续更新中...)
---恢复内容开始--- 上次简单介绍了一下C语言,这次说说数据与计算程序,那么话不多说,进来看看. 第二章 数据与简单的计算程序 一:数据 既然说到了数据,那么说说什么是写数据呢? 表面意 ...
- 005---Linux文件与目录管理
文件与目录管理 路径 绝对路径:从根目录开始的路径为绝对路径 ls /home cd /etc 相对路径:从当前路径开始描述为相对路径 cd ../../:.表示当前目录:..表示上级目录 ls ab ...
- WinSCP与Putty远程连接linux
1. 有时putty连接不上,可能是linux机器上的telnet服务未开,把蓝线上的√去掉. 2. ctrl + p 打开putty窗口: 3. putty如果显示乱码,右键 putty窗口,选择 ...