对字符串类与几个集合类的总结

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);

         }
View Code

        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值。

原文地址:https://www.cnblogs.com/maidol/p/3137108.html