2017-06-27

ArrayList 不太好用: 因为集合里面存放的是 Object 类型的元素,会产生装箱和拆箱,影响系统运行
时间

AddRange 添加数组,添加进去之后,在集合里面是以单个元素存放的

装箱:值类型====>引用类型( string 数组 class object 接口)

拆箱:引用类型==>值类型

int n = 10;//值类型
object o = n;//装箱
int n2 = (int)o;//拆箱(装箱用的什么类型,拆箱就要用什么类型,不然要抛异常)

string s = "123";
int n = Convert.ToInt32(s);//引用类型==>值类型,但不是拆箱,装箱拆箱的前提是:两种

类型是否有继承关系

Hashtable(键值对集合)(键 就相当于 数组的下标,但无法使用for循环遍历,要用foreach遍历 )

----- 必须熟练掌握!!

var 能够根据赋值推断出类型,但是声明的时候必须赋初值.

Hashtable h = new Hashtable();
h.Add(1, "asdfa");//添加数据
h.Add(‘男‘, false);
h.Add(178.99, "80KG");

foreach (var item in h.Keys) // h.keys 所有的键

{
Console.WriteLine(h[item]);
}

//键必须是唯一的,值可以重复
h[object key] = (object value)// 赋值 ,key 可以不存在
bool b = h.ContainsKey(object key) //是否包含某个键
bool bb = h.ContainsValue(object value)//是否包含某个值

foreach(迭代遍历): 只能遍历,但不能更改

C#是一门强类型语言:必须对数据的类型有一个明确的定义.
JavaScipt 弱类型语言

//成员变量的作用域大于局部变量
//成员变量可以有访问修饰符,并且有默认的访问修饰符
//局部变量不允许添加访问修饰符,局部变量的作用域就是在当前所在的函数(大括号)

ArrayList 和 Hashtable 都是 非泛型集合

泛型集合: List<T> Dictionary<Tkey,Tvalue> //固定类型 Type

ArrayList 和 List<T> 可以通过下标遍历

Hashtable 和 Dictionary<Tkey,Tvalue> 只能通过 foreach 遍历

list.RemoveAll(n => n.Length == 3);//去掉所有长度等于3的字符串

对于Dictionary<Tkey,Tvalue> 可以使用一种比较洋气的遍历方式

d.Add(1, "张山");
d.Add(2, "李四");
d[3] = "网吧";

foreach (KeyValuePair<int,string> kv in d)
{
Console.WriteLine(kv);//也可以写成
//Console.WriteLine("键是{0},值是

{1}",kv.Key,kv.Value);

}
显示结果为:

[1,张山]
[2,李四]
[3,网吧]

Path:
string p = @"C:\Users\Administrator\Desktop\1.TXT";
///获取文件名
string s = Path.GetFileName(p);
Console.WriteLine(s);
//获取文件名,不含扩展名
Console.WriteLine(Path.GetFileNameWithoutExtension(p));
//获取文件所在的文件夹的路径
Console.WriteLine(Path.GetDirectoryName(p));
//改变文件的扩展名
Console.WriteLine(Path.ChangeExtension(p,".jpg"));
//将多个路径连接成一个路径,"\"要放在前一个路径的结尾.而不能放到后一个路径的开

头.
Console.WriteLine(Path.Combine(@"c:\a\b\",@"c\d\e\",@"f.txt"));
Console.WriteLine(Path.GetFileName(p));
Console.WriteLine(Path.GetFileNameWithoutExtension(p));
//通过相对路径来返回绝对路径(可以直接在电脑中找到的路径)
//相对路径:文件相对于应用程序的路径
// E:\C#练习\面向对象\20170627\PATH\bin\Debug\1123.txt
string p2 = "1123.txt";
Console.WriteLine(Path.GetFullPath(p2));

File类: 一般操作小文件!!几十M的文件(读大文件用文件流)

//如果文件不存在就创建
if (!File.Exists("1.txt"))
{
File.Create("1.txt");
Console.WriteLine("创建成功!");
}
//如果文件存在则删除后再创建
else
{
File.Delete("1.txt");
File.Create("2.txt");
Console.WriteLine("2.txt创建成功");
}

//第一个参数是源文件的路径
//第二个参数是目标文件的路径
//第三个参数表示,如果目标文件存在,则覆盖(该参数可以没有)
File.Copy("2.txt", @"C:\Users\Administrator\Desktop\22.txt", true);

//剪切
File.Move(@"C:\Users\Administrator\Desktop\22.txt", @"E:\C#练习\面向对象

\20170627\File类\bin\Debug\33.TXT");

编码:将字符串以怎样的形式保存为二进制
出现的乱码的原因:保存这个文件所采用的编码跟打开这个文件所采用的编码不一样

//File.ReadAllBytes();可以读取所有的文件

//File.ReadAllLines(string path);
//File.ReadAllText(string path);
//这两个文件只能读取文本文件
//文本文件:如果拖到txt中还能看得懂,那么就是文本文件

//默认用UTF-8格式读取文件所有行,因此要加上Encoding.Default获取当前操作系统默

认的编码
//返回值是 一个是string 一个是string[]
//如果要对每一行进行操作,用ReadAllLines

string str = File.ReadAllText(@"C: \Users\Administrator\Desktop\1.txt",

Encoding.Default);

string[] s = File.ReadAllLines(@"C: \Users\Administrator\Desktop\1.txt",

Encoding.Default);

byte[] b = File.ReadAllBytes(@"C: \Users\Administrator\Desktop\1.txt");

string s1 = Encoding.Default.GetString(b);

//写入文件,都是覆盖写入,会将之前的覆盖掉
string s2 = "几天天asdfasdf真整的很好呀啊a呀呀呀ldfjgop8374592!";
string[] s3 = { "最佳哈买那个萨满", "阿什顿了解放啦", "大家垃圾" };
byte[] b1 = Encoding.Default.GetBytes(s2);

File.WriteAllBytes(@"234.txt",b1);

File.WriteAllText(@"aaa.txt", s2);

File.WriteAllLines(@"mm.txt",s3);

时间: 2024-10-25 16:10:33

2017-06-27的相关文章

【第三组】冲刺会议 2017.7.27

冲刺会议 日期:2017.7.27 开发小组:Geomestry 冲刺经理:程立智 成员: 程立智 李明伦 郑昊 蔡镇泽 温志成 汪涵 成员:程立智 完成工作:实现多语言在app内即时切换,继续解决bug 所遇问题: 语言在app内即时切换时第一次点击没反应(已解决) 下一步工作: 继续实现各种界面的细节和前后端的联系,解决大家遇到的各种系统bug 成员:李明伦 完成工作:设计关卡内容 所遇问题:胜利条件不好写 下一步工作:继续设计关卡内容 成员:郑昊 完成工作:做主界面图片,option自适应

2017.06.29数据挖掘基础概念第二.三章

第二章21.研究的属性类型标称属性:值是一些符号或事物的名称,代表某种类型.编码或状态二元属性:是一种标称属性,只有两个类别或状态,又称布尔属性序数属性:是一种属性,其可能的值之间具有有意义的序或秩评定,但是相续值之间的差是未知的数值属性:是定量的,即他是可度量的量,可用整数或实数值表示(区间和比率标度)22.数据散布常见的度量量(数据如何分散的方法/识别离群点)极差 四分位数.四分位数极差.五数概括图.方差和标准差23.审视数据的图形条形.饼图.线图.分位数图.分位数-分位数图.直方图和散点图

2017.7.27 logback配置文件

参考来自: Java深入 - logback的配置和使用 1 模块组成 logback分成三个模块:logback-core,logback- classic和logback-access. 1 logback-core:其他两个的基础模块. 2 logback-classic:log4j的改良版本.完整实现slf4j的api,因此可以很方便的换成其他日志系统. 3 logback-access:与servlet集成,提供通过http来访问日志的功能. 2 maven依赖 <dependency

2017.5.27 使用propagation实现:根据参数决定是否需要事务管理

1.功能描述 要实现rest接口:POST ***/entry,其中参数中有action参数. 1 当action=rollback时,批量新增出错时需要回滚. 2 当action!=rollback时,批量新增出错时跳过,处理下一条记录. 2.spring事务管理的注解式实现 之前总结过完整的spring事务管理:2017.4.18 慕课网-spring事务管理总结 1 @Transactional注解属性配置:不写的时候按默认值配置. 2 * propagation : 事务的传播行为. 3

2017/03/27学习笔记

程序的输入是指从输入文件讲数据传送给程序,程序的输出是指从程序将数据传送输出文件.C++输入输出包含以下三方面内容:对系统指定标准设备的输入和输出.即从键盘输入数据,输出到显示器.这种输入输出称为标准输入输出,简称标准IO.以外出磁盘文件为对象进行输入输出,即从磁盘文件输入数据,将数据输出到文件.以外存为对象的输入输出称为文件的输入输出,简称文件IO.度内存中指定的空间进行输入输出,通常指定一个字符串数组作为储存空间(实际上可以利用该空间储存任何信息).这种输入输出称为字符串输入输出,简称串IO

阅读笔记二2017.1.27

之前看了前三章对软件工程有了大致认识,对个人开发的流程及软件工程师的成长过程有了比以前更清晰的了解. 这一周重点阅读了第四章,本章讲了两人合作的前提是代码要规范(包括代码风格规范及代码设计规范)及代码复审,然后才能结对开发. 大学一年交了很多代码作业,但质量仅仅是完成了而已,对于缩进.行宽.括号.与大括号.分行等都没太注意过,觉着有了结果就好了.而对于命名更是越短越好,过后也就知道写过的代码是什么意思了.以前,写代码时,很多时候是上手就写,一个大括号包含所有内容,虽然大一时学过函数.类等知识,

2017.08.27

任务安排:基于Cyclone IV的基本代码编写及硬件实现: 1:Verilog hdl的运算符 2.简单程序编写:(输入利用接口key,ckey,输出利用led可以直接观测到输出结果) 2.1与门 module ND(a,b,c); input a,b; output c; assign c=a&b; endmodule 2.2与非门 module NAND(a,b,c) input a,b; output c; assign c=~(a&b); endmodule 2.3二选一 mod

2017/07/27 工作日志

上午一直在思考公式的逻辑,以及和数据库的关系,偶然间在BugFree发现了类似的任务(其实也是刻意寻找),按图索骥找到了一个专用的项目,并不能正常部署,思考到的原因可能是因为这是一个子系统,由此又加深了直接对子系统对接的疑问. 在这个系统里找到了需要的页面和代码,踌躇满志,意图下午解决问题,结果发现自己还是太天真了. 前台都没有太大问题,后台在解决了一个引用的问题后大部分问题也没有阻碍,直到开始接触SQL语句,代码非常繁杂,有两三个思路,主要方向就是: 一.按任务要求删除部分代码,但是精简是很麻

Work 2(演讲类) (2017.06.29)

2017.06.29数据挖掘基础概念第十,十一章

第十章63.什么是聚类分析 一个把数据对象划分成子集的过程.每一个子集市一个簇,使得簇中的对象彼此相似,但与其他簇中的对象不相似.由聚类分析产生的簇的集合称做一个聚类.64.数据挖掘对聚类的要求 1.可伸缩性 2.处理不同属性类型的能力 3.发现任意形状的簇 4.对于确定输入参数的领域知识的要求 5.出来噪声数据的能力 6.增量聚类和对输入次序不敏感 7.聚类高维数据的能力 8.基于约束的聚类 9.可解释性和可用性 10.划分准则 11.簇的分离性 12.相似性度量 13.聚类空间65.基本聚类