c#数据类型

using System;
using System.Collections;//非泛型集合
using System.Collections.Generic;//泛型集合

namespace -----------------------------------队列--------------------------------------
{

    class Student
    {
        int age;
        string name;
        public Student(string name,int age)
        {
            this.name = name;
            this.age = age;
        }
        public override string ToString()
        {
            return string.Format("姓名:{0},年龄:{1}", name, age);
        }
    }
    class Program
    {
        //foreach循环的本质
        public static void printCollection(IEnumerable ie)
        {
            IEnumerator it = ie.GetEnumerator();
            while (it.MoveNext())
            {
                Console.WriteLine(it.Current);
            }
        }
        static void Main(string[] args)
        {
            Queue queue = new Queue();
            //往队列中添加数据:Enqueue函数
            queue.Enqueue(1);
            queue.Enqueue("hello");
            queue.Enqueue('a');
            queue.Enqueue(true);
            Student s = new Student("xiaoming", 20);
            queue.Enqueue(s);

            Console.WriteLine("队列中的元素个数:" + queue.Count);

            Console.WriteLine("使用迭代器访问队列中的内容:");
            printCollection(queue);

            Console.WriteLine("使用数组方式访问队列中的内容:");
            object[] objs= queue.ToArray();
            for (int i = 0; i < objs.Length; i++)
            {
                Console.WriteLine(objs[i]);
            }

            //查看队首元素(不删除数据)
            Console.WriteLine("队首元素:"+queue.Peek());

            //删除队列中的元素(只能从队首删除)
            object delObj= queue.Dequeue();
            Console.WriteLine("从队首删除的元素是:"+delObj);
            queue.Dequeue();
            queue.Dequeue();

            Console.WriteLine("队列中的元素个数:" + queue.Count);
            printCollection(queue);

            //用来判断一个元素是否在队列中:Contains
            if (queue.Contains(s))
            {
                Console.WriteLine("s对象在队列中");
            }
            //删除队列中所有的元素
            queue.Clear();

            Console.WriteLine("队列中的元素个数:" + queue.Count);



            //泛型队列(安全,避免装箱拆箱操作)
            Queue<int> queueInt = new Queue<int>();
            queueInt.Enqueue(1);
            for (int i = 0; i < 10; i++)
            {
                queueInt.Enqueue(i);
            }
            printCollection(queueInt);

            Console.ReadKey();
        }
    }
}
namespace ---------------------------------- 栈------------------------------
{
    class Program
    {

        public static void printCollection(IEnumerable ie)
        {
            IEnumerator it = ie.GetEnumerator();
            while (it.MoveNext())
            {
                Console.WriteLine(it.Current);
            }
        }
        static void Main(string[] args)
        {
            Stack stack = new Stack();
            //往栈中压入数据
            stack.Push(1);
            stack.Push("hello1");
            stack.Push("hello2");
            stack.Push("hello3");

            //查看栈顶数据
            object objUp= stack.Peek();
            Console.WriteLine("栈顶元素:"+objUp);


            //查找栈中元素个数
            Console.WriteLine("栈中元素个数:"+stack.Count);

            //删除元素(弹栈)
            object delObj= stack.Pop();
            Console.WriteLine("从栈顶弹出了一个数据:" + delObj);


            printCollection(stack);


            //泛型栈
            Stack<int> stackInt = new Stack<int>();
            for(int i=0;i<10;i++)
            {
                stackInt.Push(i);
            }

            stackInt.Pop();
            stackInt.Pop();
            stackInt.Pop();
            Console.WriteLine("栈中元素个数:" + stackInt.Count);
            printCollection(stackInt);
            Console.ReadKey();

        }
    }
}
namespace --------------------------------列表------------------------------
{
    class Program
    {
        static void Main(string[] args)
        {
            //数组
            Array array = Array.CreateInstance(typeof(int), 10);

            //列表
            ArrayList list0 = new ArrayList();
            for(int i=0;i<5;i++)
            {
                list0.Add(10+i);
            }

            ArrayList list = new ArrayList();//默认为空

            //获取列表中元素的数量(属性Count)
            Console.WriteLine("列表list容器的大小:" + list.Count);
            list.Clear();//清理容器中所有的数据
            //1、往容器中添加数据
            list.Add(100);//下标0
            list.Add(3.14);//装箱
            list.Add("hello");
            list.Add(true);
            list.Add(new int[] { 1, 2, 3, 4, 5 });//添加一个对象到容器中
            list.AddRange(new int[] { 1, 2, 3, 4, 5 });//添加一个对象到容器中
            list.AddRange(list0);//添加某个容器中的所有内容到当前容器中
            list.AddRange(new string[] {"hello1","hello2","hello3"});

            //修改或者访问数组中元素
            list[1] = 200;//和数组访问方式一样(不能越界)
            list[0] = 99999;

            //2、插入数
            list.Insert(0, 666);

            //3、删除元素
            list.Remove("hello");//通过对象直接删除
            list.RemoveAt(list.Count-1);//通过下标删除对应位置的元素


            //4、输出容器中所有的元素(访问数据)
            foreach (var item in list)
            {
                Console.WriteLine(item);
            }


            //二 泛型列表
            //和ArrayList一样,自动扩容
            List<int> listInt = new List<int>();//只能存int,没有装箱和拆箱,安全
            for (int i = 0; i < 10; i++)
            {
                listInt.Add(i);
            }

            listInt.RemoveAt(0);
            foreach (var item in listInt)
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();
            
        }
    }
}
namespace ---------------------------哈希表------------------------------
{
    class Program
    {
        static void Main(string[] args)
        {
            Hashtable tb = new Hashtable();
            //往表中添加数据(一对)
            tb.Add("北京", "小雨");
            tb.Add("上海", "多云");
            tb["长沙"] = "晴天";//和List不一样,容器中没有该键,添加
            tb["广州"] = "晴转多云";

            //获取容器中元素个数(几对)
            Console.WriteLine("表中元素个数:"+tb.Count);

            //删除表中的元素(一对)
            tb.Remove("北京");
            tb.Remove("xian");//删除一个不存在的key-value,不影响(不报错)
            //tb.Remove(null);//删除的key不能为null,会抛出异常
            Console.WriteLine("表中元素个数:" + tb.Count);

            //查找value(通过key)
            string result = (string)tb["shanghai"];
            Console.WriteLine("key:{0}对应的值:{1}","shanghai",result);


            //查找所有的key
            Console.WriteLine("tb中所有的key:");
            foreach (var item in tb.Keys)
            {
                Console.Write(item+",");
            }

            //查找所有的value
            Console.WriteLine("\ntb中所有的value:");
            foreach (var item in tb.Values)
            {
                Console.Write(item + ",");
            }

            //查找所有的key,value
            //注意:哈希表中里面的数据的顺序跟添加的先后顺序无关,随机性
            Console.WriteLine("\ntb中所有的key和value:");
            foreach (DictionaryEntry item in tb)//DictionaryEntry不能改成var
            {
                Console.WriteLine(item.Key+"-"+item.Value);
            }

            //判断某个键是否存在

            if (tb.ContainsKey("北京"))
            //if (tb.Contains("北京"))
            {
                Console.WriteLine("容器中存在key:北京");
            }
            else
            {
                Console.WriteLine("容器中不存在key:北京");
            }
            if(tb.ContainsValue("小雨"))
            {
                Console.WriteLine("容器中存在value:小雨");
            }
            else
            {
                Console.WriteLine("容器中存在value:小雨");
            }
----------------------------字典--------------------------------- 
Dictionary<int, string> dic = new Dictionary<int, string>();
            //字典中存储数据
            for (int i = 0; i < 10; i++)
            {
                dic.Add(i, "hello" + i);
            }
            dic[10] = "hello10";
            Console.WriteLine("字典dic中元素个数:"+dic.Count);

            //删除数据
            dic.Remove(0);
            dic.Remove(1);

            Console.WriteLine("字典dic中元素个数:" + dic.Count);

            //获取某个键对应的值(通过索引方式)
            Console.WriteLine("dic[5]="+ dic[5]);

            //获取所有的键
            Dictionary<int, string>.KeyCollection keys= dic.Keys;
            var keys1 = dic.Keys;
            Console.WriteLine("字典dic中所有的key:");
            foreach (var item in keys1)
            {
                Console.Write(item+",");
            }

            //获取所有的值
            Dictionary<int, string>.ValueCollection values = dic.Values;
            var values1 = dic.Values;
            Console.WriteLine("\n字典dic中所有的value:");
            foreach (var item in values1)
            {
                Console.Write(item + ",");
            }

            //获取所有的键值对
            Console.WriteLine("\n字典dic中所有的键值对:");
            //foreach (var item in dic)
            foreach (KeyValuePair<int, string> item in dic)
            {
                Console.WriteLine(item.Key + "--"+item.Value);
            }
            //判断字典中某个键是否存在,没有Contains函数(Hashtable中有)
            if(dic.ContainsKey(10))
            {
                Console.WriteLine("字典dic中包含键10");
            }
            //判断字典中某个值是否存在
            if (dic.ContainsValue("hello10"))
            {
                Console.WriteLine("字典dic中包含值hello10");
            }
            Console.ReadKey();

数据结构分析https://www.cnblogs.com/murongxiaopifu/p/4161648.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值