zoukankan      html  css  js  c++  java
  • C#面向对象12 集合

    ArrayList和HashTable集合

    1.ArrayList集合

    ***添加元素

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Collections;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                //
                ArrayList list = new ArrayList();
    
                //集合:很多数据的一个集合,长度可以任意改变,类型随便
                //数组:长度不可变,类型单一
    
                list.Add(1);
                list.Add(true);
                list.Add("zq");
                list.Add('w');
    
                /*
                 * ToString方法
                 我们将一个对象输出到控制台 默认情况下 打印的就是这个对象所在的类的命名空间
                 */
                list.Add(new int []{1,2,3,4,5,6,7});
                Person p = new Person();
                list.Add(p);
                list.Add(list);
    
                for(int i=0;i<list.Count;i++)
                {
                    if(list[i] is Person)
                    {
                        ((Person)list[i]).Say();
                    }
                    else if(list[i] is int[])
                    {
                        int[] array = (int[])list[i];
                        for(int j=0;j<array.Length;j++)
                        {
                            Console.WriteLine(array[j]);
                        }
                    }
                    else
                    {
                        Console.WriteLine(list[i]);
                    }
    
                    //Console.WriteLine(list[i]);
                }
    
                Console.ReadKey();
            }
        }
    
        public class Person
        {
            public void Say()
            {
                Console.WriteLine("say!");
            }
        }
    }

    ***添加集合元素

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Collections;
    using System.IO;
    
    namespace ArrayList
    {
        class Program
        {
            static void Main(string[] args)
            {
    
                System.Collections.ArrayList list = new System.Collections.ArrayList();
                list.Add(123);
    
                //添加集合元素
                list.AddRange(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 });
                list.AddRange(list);
                for(int i=0;i<list.Count;i++)
                {
                    Console.WriteLine(list[i]);
                }
                Console.ReadKey();
            
            }
        }
    }

     ***集合的操作(插入,删除,清空,反转,排序)

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Collections;
    using System.IO;
    
    namespace ArrayList
    {
        class Program
        {
            static void Main(string[] args)
            {
    
                System.Collections.ArrayList list = new System.Collections.ArrayList();
                list.Add(123);
                list.Add(true);
                //添加集合元素
                list.AddRange(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 });
                list.AddRange(list);
    
                //*******************************
                //list.Clear();//清空所以元素
                //list.Remove(true);//删除单个元素
                //list.RemoveAt(0);//根据下标去删除元素
                //list.RemoveRange(0, 3);//根据下标去删除一定范围内的元素
                //list.Reverse();//反转
                //list.Sort();//升序排列
                list.Insert(1, "insert");//在指定的位置,插入一个元素
                list.InsertRange(1, list);//在指定的位置,插入一个集合
                bool tt= list.Contains(123);//判断集合包含不包含改元素
    
    
                for(int i=0;i<list.Count;i++)
                {
                    Console.WriteLine(list[i]);
                }
    
                Console.ReadKey();
            
            }
        }
    }

     ***集合的长度

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ArrayList长度问题
    {
        class Program
        {
            static void Main(string[] args)
            {
                System.Collections.ArrayList list = new System.Collections.ArrayList();
                list.Add(123);
                //Count:表示这个集合中实际包含的元素个数
                //Capacity:表示这个集合中可以包含的元素个数
                Console.WriteLine(list.Count);
                Console.WriteLine(list.Capacity);
    
                //****
                //每次集合中实际包含的个数(count)超过了可以包含的元素个数(Capacity)的时候,
                //集合就会在内存中申请多开辟一倍的空间,来保证集合的长度够用。
    
                Console.ReadKey();
    
            }
        }
    }

    2.Hashtable 集合 --> 键值对集合

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Collections;
    using System.Diagnostics;
    
    namespace HashTable
    {
        class Program
        {
            static void Main(string[] args)
            {
                Hashtable ht = new Hashtable();
                ht.Add(1,"111");
                ht.Add(2, "222");
                ht.Add(true, "True");
                ht.Add(false, "False");
    
                ht[1] = "123456789";
    
                //在键值对集合中 是根据键去找值得
                //Console.WriteLine(ht[true]);
                foreach (var item in ht.Keys)
                {
                    Console.WriteLine(ht[item]);
                }
                //for (int i = 0; i < ht.Count;i++ )
                //{
                //    Console.WriteLine(ht[i]);
                //}
    
                //键值对里面的键是唯一的,值可以重复!
    
                //常用方法:判断键是否唯一
                if(!ht.ContainsKey(1))
                {
                    ht.Add(1, "123456789");
                }
                else
                {
                    Console.WriteLine("已包含");
                }
    
                //常用方法
                ht.Clear();
                ht.Remove(2);
    
                //****
                //问:for/foreach 在循环次数很多很多的情况下,谁的效率高
                //foreach循环效率要高很多!
                
                //****测试程序运行时间
                /*
                Stopwatch sw = new Stopwatch();
                sw.Start();
                for (int i = 0; i < 10000000; i++)
                {
                    
                }
                sw.Stop();
                Console.WriteLine(sw.Elapsed);
                 * */
    
                Console.ReadKey();
            }
        }
    }

    **C# var 关键字

    地址:https://www.cnblogs.com/ggll611928/p/5991401.html

    3.简体繁体子转换 用Hasgtable集合

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Collections;
    
    namespace ConsoleApplication2
    {
        class Program
        {
            private const string jian = "常数声明可以声明多个常数";
            private const string fan =  "常2聲明可以聲明多個常數";
    
            static void Main(string[] args)
            {
                Hashtable ht = new Hashtable();
    
                //Console.WriteLine(jian[1]);
                for (int i = 0; i < jian.Length; i++)
                {
                    if(!ht.ContainsKey(jian[i]))
                    {
                        ht.Add(jian[i], fan[i]);
                    }
                }
    
                string input = Console.ReadLine();
    
                for (int i = 0; i < input.Length; i++)
                {
                    if(ht.ContainsKey(input[i]))
                    {
                        Console.Write(ht[input[i]]);
                    }
                    else
                    {
                        Console.Write(input[i]);
                    }
                    
                }
                Console.ReadKey();
            }
        }
    }
  • 相关阅读:
    编译器内置宏实现调试信息输出
    走进C标准库(4)——"stdio.h"中的putc
    走进C标准库(5)——"stdio.h"中的其他部分函数
    走进C标准库(2)——"stdio.h"中的fopen函数
    [转]深度探索C语言函数可变长参数
    C语言I博客作业02
    C语言I博客作业02
    第一周c语音作业
    什么是模块化,模块化的好处又是什么?
    服务端渲染和客户端渲染
  • 原文地址:https://www.cnblogs.com/youguess/p/8464221.html
Copyright © 2011-2022 走看看