集合_哈希表_字典_泛型_文件(C#总结)


数组能做到:存放同种类型数据,且数据个数确定
object类型的数组能满足:放各种类型的数据,确定放多少个,但是随意插入元素,数组做不到
集合能做到:存放各种数据类型,且不确定存放多少个,能做到随意插入

集合中插入数据的方法 
1.通过构造函数可以添加一个数组,数组元素为集合元素的单一项
2.通过Add()方法可以添加数组,但是只能算一个元素
int[] nums = new int[] { 1, 2, 3, 4, 5 };
ArrayList al = new ArrayList(nums);
al.AddRange(nums);
al.Add(nums);
3.通过AddRange()也可以添加一个数组
4.单一添加用Add()方法
ArrayList arrayList = new ArrayList();
arrayList.Add(10);
arrayList[0] = 100000;//重新赋值,添加后可以通过下标改变某个索引的值
5.集合,可以放数组,也可以放类,也可以放单一的值
Person p = new Person("小杨", '男',18);
arrayList.Add(p);

集合中常用的方法
ArrayList al = new ArrayList();
添加数据 al.Add()    al.AddRange()
插入数据 al.Insert()   
删除数据 al.Remove()
排序    al.Sort()
反转    al.Reverse()
清空    al.Clear()


不知道存什么类型,也不知道存多少个------ArrayList
知道存什么类型,但不知道存多少个--------List

泛型集合List
List<int> list = new List<int>();
清空所有元素:list.Clear();
最大值:list.Max());
最小值:list.Min()
平均值:list.Sum()
平均值:list.Average()



哈希表:以键值对的形式存值  key---键object    value---值object;遍历,显示是无序的; key不能相同,一旦重复会报错
Hashtable ht = new Hashtable();
ht.Add();  插入数据
ht.Contains();   判断哈希表中是否包含这个key
foreach遍历这个哈希表
foreach (var item in ht.Keys)//var是一种类型
{
   Console.WriteLine(ht[item]);   //ht.Keys是键,ht[item]是值
}
foreach (object obj in ht.Keys)
{
    Console.WriteLine("key:{0}",obj);
    Console.WriteLine("value:{0}",ht[obj]);
}

字典:和哈希表很想像,都是无序的
Dictionary<string, string> dic = new Dictionary<string, string>();
添加数据:dic.Add("老李", "老虎");
遍历字典元素:
foreach (string  item in dic.Keys)
{
    Console.WriteLine("key---:{0},value---:{1}",item,dic[item]);
}


文件_文件夹_文件流
File.Create(path);//在指定路径中创建(不存在)或覆盖(存在)文件
File.Delete(path);//删除指定路径下的文件,彻底删除;如果路径下没有文件,不报异常
File.Exists(path);//判断这个路径下有没有这个文件
File.Move(path, path1);//把文件移动到指定路径下,可以改名,如果路径下有这个路径会报异常
File.Copy(path,path1);//把文件复制到另一个路径下,复制的同时可以改名;复制文件的时候如果另一个路径中存在同名文件,会报异常,可以利用方法重载,true选择覆盖重名文件


DateTime dt = new DateTime();
DateTime.Now:显示现在的时间
DateTime.Now.Year://显示当前时间的年份


//方法的返回值是DateTime
dt =File.GetCreationTime(path);//得到创建时间
dt1 = File.GetLastWriteTime(path);//上一次修改时间
dt2 = File.GetLastAccessTime(path);//上一次访问时间


读文件和写文件
File.ReadAllLines(path,Encoding.Default);//一行一行读,返回值,字符串数组
File.ReadAllText(path,Encoding.Default);//一次性全部读完,返回值,字符串
File.AppendAllText(path, "我很漂");//追加文本


文件夹操作:

Directory.CreateDirectory(path);//在指定的路径下创建文件夹,如果已存在,再创建不报异常
Directory.Delete(path,true);//如果文件夹不为空,则报异常,重载true,不为空也会删掉
Directory.Exists(path);//判断这个路径下有没有这个文件夹
string ps=Directory.GetCurrentDirectory();//获取程序所在目录
string[]dire = Directory.GetDirectories(path);//获取指定路径下所有文件夹的全路径
string[] str = Directory.GetFiles(path);//返回指定路径下所有文件的全路径



对大文件的读写用filestream:StreamReader StreamWriter
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Write, FileShare.Write);
1.文件流
2.读写流
3.操作
fs.Flush();//清除缓冲区
fs.Dispose();//释放资源
fs.Close();//关闭

猜你喜欢

转载自blog.csdn.net/zhaofen_7/article/details/81165368