1.string:
1.是引用类型
2.不可变(恒定性):当你重新赋值或者修改值的时候会开辟新的空间
3.效率不高
4.方法:
IndexOf("")/IndexOf(‘’)/IndexOf("",int startIndex):找到你指定的字符在源文件串中第一次出现的位置
LastIndexOf("")/LastIndexOf(‘’)/LastIndexOf("",int startIndex):找到你指定的字符(串)在源文件串中最后一次出现的位置
SubString(int startIndex):从你指定的位置一直截取到最后(索引从0开始计算)
SubString(int startIndex,int length):从你指定的位置一直截取,截取你指定的个数(索引从0开始计算,个数从1开始计算)
Split('')/Split(new char[]{},stringSplitOption.RemoveEmptyEntries):分隔字符串
string.Join("",string[]):可以将数组里面的值通过你所指定的字符连接
Replace("原始字符串","目标字符串")
ToUpper()/ToLower():大小写
Trim():去除左右空格
ToCharArray():将一个字符串转换为字符数组
2.StringBuilder:是真正的引用类型
1.创建:StringBuilder sb=new StringBuilder(""); //不能将字符串和StringBuilder任意赋值
2.如何追加:Append();
AppendLine();
3.在做赋值或者重新修改的时候不会开辟新的空间,效率相对比较高。
3.枚举:固定的一些值:字符串值、整型值
1.public enum Gender{男=0,女=1}
2.如果做类型转换:
int num=(int)Gender.男;
Gender gen=(Gender)Enum.parse(TypeOf(Gender),"男");
4.Arraylist---List<T>:本质上来说,存储的数据是object[]
1.长度是可变的 length:长度 capacity:容量,capacity不能小于实际内容的值,
当你将length变大之后,capacity会自动变大。
2.它的类型是object,---对于值类型,写入和读取的时候需要做装箱和折箱
3.增加:Add(object)
4.删除:Remove(object) RemoveAt(int index)
5.集合通过索引下标访问
6.clear();清空
7.Contains():判断是否包含某一个元素
8.ToArray();--object
不足:1.如果存储值类型,需要装箱和拆箱操作 2.不管什么类型的数据,存储之后,取出来使用必须通过类型转换
5.HashTable—Dictionary<Key,Value>:
1.通过Add()方法添加元素,需要同时添加key和value
2.通过key访问和删除
3.数据其实是存放于一个burket[]中的
1.key
2.value
3.hash_coll:它是由key通过算法得到,用来标明数据存储的地址空间,在遍历的时候通过这个hash_coll值取出对应的value,所以它的存取效率非常高,因为不需要像arrlist做遍历
4.有三种遍历方式:
foreach(object obj in ht.Keys) { Console.WriteLine(obj); } foreach (object obj in ht.Values) { Console.WriteLine(obj); } foreach (DictionaryEntry obj in ht) { Console.WriteLine(obj.key +” : “+obj.value); }
Hashtable的不足:1.如果存储值类型,需要装箱和拆箱操作 2.不管什么类型的数据,存储之后,取出来使用必须通过类型转换
6.总结:
List<T>和Dictionary<key,value>规范了类型,在做遍历的时候不需要做类型转换,同时也保证了数据安全。
1.list<T>----ArrayList:使用索引访问和删除,也可能通过对象删除,使用Add进行对象的添加,也可以通过AddRange()一次性添加多个元素
2.HashTable---Dictionary<key,value>:通过key值访问和删除,遍历的时候可以选择遍历key或者遍历value.在添加元素的时候需要添加key值和value值。