C#基础知识(五)

时间:2022-10-01 18:21:10

1、集合:是一组组合在一起的类型的类型化对象。
集合的几个方法应用:
(1)追加用.Add获取
static void Main(string[] args)
        {
            ArrayList al = new ArrayList();
            al.Add(1);
            al.Add(2);
            al.Add(3);
            foreach (object i in al)
            {
                Console.WriteLine(i);
            }
        }
结果:1
      2
      3
(2)Remove移除元素
static void Main(string[] args)
        {
            ArrayList al = new ArrayList();
            al.Add(1);
            al.Add(2);
            al.Add(3);
            al.Remove(3);
            foreach (object i in al)
            {
                Console.WriteLine(i);
            }
        }
结果:1
      2
(3)RemoveAt移除下标对应的元素
static void Main(string[] args)
        {
            ArrayList al = new ArrayList();
            al.Add(1);
            al.Add(2);
            al.Add(3);
            al.RemoveAt(1);
            foreach (object i in al)
            {
                Console.WriteLine(i);
            }
        }
结果:1
      3
(4)Count共有多少个元素
static void Main(string[] args)
        {
            ArrayList al = new ArrayList();
            al.Add(1);
            al.Add(2);
            al.Add(3);
            Console.WriteLine("共有{0}个元素", al.Count);
            foreach (object i in al)
            {
                Console.WriteLine(i);
            }
        }
结果:共有3个元素
      1
      2
      3
(5)Capacity容量,如果开始设置容量就按设置的容量翻倍
static void Main(string[] args)
        {
            ArrayList al = new ArrayList();
            al.Add(1);
            al.Add(2);
            al.Add(3);
            Console.WriteLine("容量为:{0}",al.Capacity);
            foreach (object i in al)
            {
                Console.WriteLine(i);
            }
        }
结果:容量为4
      1
      2
      3
(6)可以通过下标改变元素的值
static void Main(string[] args)
        {
            ArrayList al = new ArrayList();
            al.Add(1);
            al.Add(2);
            al.Add(3);
            al[2] = 5;
            foreach (object i in al)
            {
                Console.WriteLine(i);
            }
        }
结果:1
      2
      5
2、泛型:表示可通过索引访问的对象的强类型列表。
例:List<Product> list = new List<Product>();
            Product pro1 = new Product();
            pro1.Name = "绿茶";
            pro1.Price = 2.5;
            pro1.Count = 10;
            Product pro2 = new Product();
            pro2.Name = "红茶";
            pro2.Price = 2.5;
            pro2.Count = 10;
            Product pro3 = new Product();
            pro3.Name = "果粒橙";
            pro3.Price = 3000000.00;
            pro3.Count = 10;
            list.Add(pro1);
            list.Add(pro2);
            list.Add(pro3);
            int i = 1;
            foreach (Product pro in list)
            {
                Console.WriteLine("{0,-2}品名:{1,-" + (10 - Encoding.Unicode.GetByteCount(pro.Name) / 2) + "}价格:{2:c}  数量:{3}", i++, pro.Name, pro.Price, pro.Count);
            }

3、堆:表示对象的先进后出的集合。
Stack stack = new Stack();
 stack.Push(1);//添加元素
 stack.Push(2);
 stack.Push(3);
 stack.Push(4);

 Console.WriteLine(stack.Peek());//只看不取
 Console.WriteLine(stack.Pop());//即看又取

 foreach (object o in stack)//遍历全部元素
 {
      Console.WriteLine(o);
 }
4、队列:表示对象的先进先出的集合。
Queue que = new Queue();
 que.Enqueue("a");//添加元素
 que.Enqueue("b");
 que.Enqueue("c");
 que.Enqueue("d");
 Console.WriteLine(que.Dequeue());//即看又取
 Console.WriteLine(que.Peek());//只看不取
 Console.WriteLine("----------------------");
 foreach (object o in que)//遍历全部元素
 {
     Console.WriteLine(o);
 }
5、Hashtable:表示键/值对的集合,这些键/值对根据键的哈希代码进行组织。
            Hashtable ht = new Hashtable();
            ht.Add(0,"张三");
            ht.Add(1,"李四");
            ht.Add(2,"王五");

           
            //值的
            foreach (var v in ht.Values)
            {
                Console.WriteLine(v);
            }
            //键的
            foreach (var k in ht.Keys)
            {
                Console.WriteLine(k);
            }
只要键对象用作 Hashtable 中的键,它们就必须是永远不变的。
当把某个元素添加到 Hashtable 时,将根据键的哈希代码将该元素放入一块存储区中。该键的后续查找将使用键的哈希代码只在一个特定存储区中搜索,这将大大减少为查找一个元素所需的键比较的次数。

 

本文出自 “大懒丫头” 博客,请务必保留此出处http://lanyatou.blog.51cto.com/3306130/616590