初识c#---StringBuilder和集合


StringBuilder:
作用:解决string在拼接时产生的滞留内存问题
string对象有不可改变性,每次执行拼接的时候,实际上都会产生一个全新的字符串对象
stringBuilder类解决了对字符串重复修改过程中产生大量的对象问题
默认容量是16,拼接长度超过容量时翻一倍增长,没有超过容量就默认为16
超过容量,拼接翻倍增长,如果翻倍之后,容量还不够,就按实际容量是多少就输出多少
            
           StringBuilder sb = new StringBuilder();
            Console.WriteLine("没有拼接之前sb的容量为:"+sb.Capacity);
            Console.WriteLine("没拼接前sb的长度为"+sb.Length);
            sb.Append("a");
            sb.Append("b");         
          
            Console.WriteLine("拼接后sb的长度为" + sb.Length);
            Console.WriteLine("拼接之后的sb的容量为"+sb.Capacity);
            Console.WriteLine(sb);

集合:
* 非泛型集合和泛型集合
* ArrayList是线性数据结构
using System.Collections.Generic;  //泛型集合命名空间
using System.Collections;          //非泛型集合命名空间
//动态数组
            ArrayList al = new ArrayList();
            //为了解决数组的局限性
            //1.长度固定
            //2.数组内元素类型固定

            //添加元素:
            al.Add(1);
            al.Add("1");
            al.Add('3');

            //在指定位置插入一个新值
            al.Insert(3,1);

            //排序
            al.Sort();

            //遍历方式
            for (int i = 0; i < al.Count; i++)
            {
                //al[i] = 1;
                Console.WriteLine(al[i]);

            }           

            //直接删除某个值
            al.Remove("1");

            //根据索引删除数组元素
            al.RemoveAt(0);

            //根据范围删除
            al.RemoveRange(0, 2);

  
            //获取数组的大小
            Console.WriteLine("数组的长度" + al.Count);
     //将arr中的元素复制到al集合中,此时复制的时候al不会自动扩充容量,所以需要al集合的长度要大于
       或者等于arr的长度
            int[] arr = { 1, 2};
            al.SetRange(0, arr);

            //获取一个范围内的元素
            ArrayList list = al.GetRange(0, 2);

            //返回第一个匹配1这个值得索引
            Console.WriteLine(al.IndexOf(1));
            //返回最后一个匹配1这个值得索引
            Console.WriteLine(al.LastIndexOf(1));
            //集合反转
            al.Reverse();

            //清空集合所有元素
            al.Clear();

            //判断某个元素是否在al中
            if (al.Contains(1))
            {
                Console.WriteLine("集合存在1这个元素");
            }

            //将al数组中的元素拷贝到object数组当中
            object[] objs = al.ToArray();

            //在集合中指定位置插入一个新的ICollection子类
            int[] arrs = { 1, 2, 3 };
            al.InsertRange(0, arrs);
            Console.WriteLine("-----" + al.Count);

            //第二种遍历方式
            foreach (var v in al)
            {
                //迭代变量v不能复制,只能读取
                Console.WriteLine(v);
            }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值