1. 程式人生 > >C#基礎-058 List集合、HashSet集合、HashTable集合、StringBuilder與String執行效率比較

C#基礎-058 List集合、HashSet集合、HashTable集合、StringBuilder與String執行效率比較

 static void Main(string[] args)
        {
            ArrayList list = new ArrayList();
            //獲取集合元素的數量
            Console.WriteLine(list.Count);
            //向集合中新增資料
            list.Add(2);
            list.Add(3);
            list.Add(4);
            list.Add(5);
            list.Add(6);
            list
.Add(7); Console.WriteLine(list.Capacity); list.Add(new Student()); list.AddRange(list); bool ret = list.Contains(100); Console.WriteLine(ret); ArrayList arraylist = list.GetRange(1, 3);// 3 4 5 //foreach 是對集合做修改 遍歷操作 禁止對foreach做刪除操作
foreach (var item in arraylist) { if ((int)item == 4) { list.Remove(item); } } int index = list.IndexOf(4); Console.WriteLine(index); list.Insert(1,100); list
.RemoveAt(1); list.Reverse(); list.Sort(); Console.WriteLine("----------"); foreach (var item in list) { Console.WriteLine(item); } }
static void Main(string[] args)
        {
            HashSet<int> hs = new HashSet<int>();
            //hs.Add(1);
            //Console.WriteLine(hs.Count);
            //hs.Add(2);
            //Console.WriteLine(hs.Count);
            //hs.Add(1);
            //Console.WriteLine(hs.Count);
            Random random = new Random();//自動剔除相同的資料
            while (hs.Count < 100)
            {
                hs.Add(random.Next(1, 101));
            }
            foreach (var item in hs)
            {
                Console.WriteLine(item);
            }
        }
 static void Main(string[] args)
        {
            //在 Hashtable 這樣的集合中 儲存的順序是亂序的 
            Hashtable ht = new Hashtable();
            ht.Add("北京","重度霧霾");
            ht.Add("上海", "梅雨");
            ht.Add("鄭州","霾");
            Console.WriteLine(ht["北京"]);
            ht["石家莊"] = "123";
            bool ret = ht.Contains("石家莊");
            Console.WriteLine(ret);
            ht.Remove("鄭州");
            ret = ht.Contains("鄭州");
            Console.WriteLine(ret);
            foreach (var item in ht.Keys)
            {
                Console.WriteLine(item +"  "+ht[item]);
            }
        }
 static void Main(string[] args)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("12");
            sb.Append(12);
            sb.Append(new Student());
            sb.AppendFormat("{0}***{1}***{2}",12,13,45);
            sb.Insert(0, "YY");
            sb.Remove(0,2);
            sb.Replace("1991","1998");
            sb.Replace("19","2000",4,4);
            Console.WriteLine(sb.Capacity);
            Console.WriteLine(sb.Append(sb));
            Console.WriteLine(sb);
        }

StringBuilder與String的效率比較:

 static void Main(string[] args)
        {
            Stopwatch sw = new Stopwatch();
            string ret = string.Empty;
            StringBuilder sb = new StringBuilder();
            sw.Start();
            for (int i = 0; i < 10000000; i++)
            {
               // ret += i;
                sb.Append(i);
            }
            sw.Stop();
            Console.WriteLine("總時間是:{0}",sw.Elapsed);
          // Console.WriteLine(ret);
        }