• 泛型集合


      1 static void Main(string[] args)
      2         {
      3 
      4             ArrayList arrayList = new ArrayList();
      5             arrayList.Add(1);                       //Add方法,将一个元素添加到ArrayList中
      6             arrayList.Add("你好");
      7             arrayList.Add(3.265);
      8             IList iList = arrayList;
      9             ICollection iCollection = iList;
     10             IEnumerable iEnumerable = iCollection;  //体现了ArrayList的继承关系
     11             foreach (object obj in iEnumerable)
     12             {
     13                 Console.WriteLine(obj.ToString());
     14             }
     15 
     16             bool b = arrayList.Contains("你好");  //确定ArrayList中是否包含某元素
     17             Console.WriteLine(b);                 //输出 True
     18 
     19             object[] objArr = new object[arrayList.Count + 1];
     20             objArr[0] = "我是用来占位的";
     21             arrayList.CopyTo(objArr, 1); //便宜一位,也就是接受数组从1开始,默认是0
     22             foreach (object obj in objArr)
     23             {
     24                 Console.Write(obj.ToString() + "-");    //输出 我是用来占位的-1-你好-3.265-
     25             }
     26             Console.WriteLine();
     27 
     28             ArrayList AL = ArrayList.FixedSize(arrayList);  //静态方法 返回一个固定大小的ArrayList对象,数量不许改变。也就是说不能添加和删除。
     29             Console.WriteLine(AL.IsFixedSize);  //输出True
     30             //AL.Add(111); 此处报异常,"集合的大小是固定的"
     31             ArrayList ALReadOnly = ArrayList.ReadOnly(arrayList);
     32             Console.WriteLine(ALReadOnly.IsReadOnly);   //输出True
     33 
     34 
     35             ArrayList AL1 = arrayList.GetRange(1, 2);   //按照索引顺序截取出子集
     36             foreach (object obj in AL1)
     37             {
     38                 Console.Write(obj.ToString());  //输出 你好3.265    可以截取出的新ArrayList只包含1,2位
     39             }
     40             Console.WriteLine();
     41 
     42             int indexLocation = arrayList.IndexOf(1);   //从左边开始检索,返回第一个匹配到的元素的顺序
     43             Console.WriteLine(indexLocation);   //输出  0
     44 
     45             arrayList.Add(1);       //为了体现LastIndexOf的不同,先添加一个1
     46             int lastLocation = arrayList.LastIndexOf(1);
     47             Console.WriteLine(lastLocation);    //返回3
     48 
     49             arrayList.Insert(2, "Insert插入的元素");  //这个方法与Add的不同在于它可以在任意位置插入
     50             foreach (object obj in arrayList)
     51             {
     52                 Console.Write(obj.ToString() + " ");    //输出 1 你好 Insert插入的元素 3.265 1
     53             }
     54 
     55             ArrayList arr = new ArrayList();
     56             arr.Add(1);
     57             arr.Add(2);
     58             arrayList.AddRange(arr);
     59             foreach (object obj in arrayList)
     60             {
     61                 Console.Write(obj.ToString() + "-");    //输出 1 你好 Insert插入的元素 3.265 1 1 2可以看到将一个新的集合追加到了最后
     62             }
     63 
     64             arrayList.Remove(2);
     65             foreach (object obj in arrayList)
     66             {
     67                 Console.Write(obj.ToString() + "-");    //输出 1 你好 Insert插入的元素 3.265 1 1 可以看到2已经被移除了
     68             }
     69             Console.WriteLine();
     70 
     71             arrayList.RemoveAt(0);
     72             foreach (object obj in arrayList)
     73             {
     74                 Console.Write(obj.ToString() + "-");    //输出 你好 Insert插入的元素 3.265 1 1 可以看到第0个元素"2"已经被移除了
     75             }
     76             Console.WriteLine();
     77 
     78             //arrayList.Reverse();
     79             //foreach (object obj in arrayList)
     80             //{
     81             //    Console.Write(obj.ToString() + "-");        //输出顺序倒转的所有元素
     82             //}
     83 
     84             ArrayList AL3 = new ArrayList();
     85             arrayList.SetRange(0,AL3);      //从第0位开始,将元素复制到AL3中
     86             foreach (object obj in AL3)
     87             {
     88                 Console.Write(obj.ToString() + "-");    //输出 你好 Insert插入的元素 3.265 1 1
     89             }
     90 
     91             object[] objArrs = new object[arrayList.Count];
     92             objArrs = arrayList.ToArray();
     93             foreach (object obj in objArrs)
     94             {
     95                 Console.Write(obj.ToString() + "-");
     96             }
     97 
     98             Console.WriteLine();
     99 
    100             arrayList.Capacity = 5;     //读取或设置可包含元素的数量,如果小于当前会报错。
    101             Console.WriteLine(arrayList.Count);     //输出5   
    102             arrayList.TrimToSize();
    103             Console.WriteLine(arrayList.Count);     //输出5  
    104 
    105             Console.ReadKey();
    106         }
  • 相关阅读:
    Python 处理时间的模块
    C# 委托在线程与UI界面之间的应用
    C# 自己动手实现Spy++(二)
    C# 自己动手实现Spy++(一)
    VS2008自定义快捷键设置
    C#深入解析委托——C#中为什么要引入委托
    C# 线程 在 sleep,suspend 之后 Abort 的方法
    C#多线程学习笔记之(abort与join配合使用)
    使用命名管道的OVERLAPPED方式实现非阻塞模式编程 .
    C++和C#进程之间通过命名管道通信(上)
  • 原文地址:https://www.cnblogs.com/Jacklovely/p/5607822.html
Copyright © 2020-2023  润新知