c#-集合

 概要

名称 定义 说明 常用函数
列表 List<T> 列表 Add,Insert,Sort,RemoveRange,RemoveAt
队列 Queue<T> 前进后出 Enqueue,Dequeue
Stack<T> 先进先出 Push,Pop
链表 LinkedList<T> 双向遍历 Find(),AddAfter(),AddBefor(),Last,First
有序链表 SortedList<T,T> 自动排序  
字典 Dictionary<T,T> 字典  
有序字典 SortedDictionary<T,T> 有序字典  
 HashSet<T> 不能重复的集合 Add
SortedSet<T> 自动排序的不能重复集合 Add

代码

using System;
using System.Collections.Generic;

namespace 集合
{
    class Program
    {
        static void Main(string[] args)
        {
            //列表.main();
            //队列.main();
            //栈.main();
            //链表.mian();
            //有序链表.mian();
            //字典.mian();
            有序字典.mian();
            //集.mian();
            Console.ReadLine();
        }
    }
    
    class 列表
    {
        public void 函数()
        {
            Console.WriteLine("中文函数名");
        }
        public static void main()
        {
            Console.WriteLine("\n列表");
            var list1 = new List<int>();
            list1.Add(2);
            list1.Add(5);
            list1.Insert(0, 3);
            list1.Insert(2, 7);
            Console.WriteLine("3的位置:"+list1.IndexOf(3, 0));
            Console.WriteLine("列表");
            foreach (int i in list1)
            {
                Console.WriteLine(i);
            }
            list1.Sort();
            Console.WriteLine("排序后的列表");
            foreach (int i in list1)
            {
                Console.WriteLine(i);
            }
            list1.RemoveRange(0, 2);
            list1.RemoveAt(0);
            Console.WriteLine("删除后的列表");
            for (int i = 0; i < list1.Count; i++)
            {
                Console.WriteLine(list1[i]);
            }
        }
    }
    class 队列
    {
        public static void main()
        {
            var query = new Queue<int>();
            query.Enqueue(5);
            query.Enqueue(7);
            query.Enqueue(3);
            while (query.Count > 0)
            {
                int a = query.Dequeue();
                Console.WriteLine(a);
            }
        }
    }
    class 栈
    {
        Stack<int> mStacks = new Stack<int>();
        public static void main()
        {
            栈 a = new 栈();
            a.mStacks.Push(5);
            a.mStacks.Push(7);
            a.mStacks.Push(3);
            Console.WriteLine("pop前的栈");
            a.play();
            a.mStacks.Pop();
            Console.WriteLine("pop后的栈");
            a.play();
            int b = a.mStacks.Peek();
            Console.WriteLine("Peek:" + b);
            Console.WriteLine("Peek后的栈");
            a.play();
            bool ishas = a.mStacks.Contains(5);
            Console.WriteLine("Contains:" + ishas);
        }
        private void play()
        {
            foreach(int i in mStacks)
            {
                Console.WriteLine(i);
            }
        }
    }
    class 链表
    {
        static LinkedList<int> mLinkLists = new LinkedList<int>();
        public static void mian()
        {
            mLinkLists.AddFirst(5);
            mLinkLists.AddLast(7);
            LinkedListNode<int> a = mLinkLists.Find(5);
            mLinkLists.AddAfter(a, 3);
            mLinkLists.AddBefore(a, 1);
            LinkedListNode<int> fist = mLinkLists.First;
            Console.WriteLine("正序遍历");
            while (fist.Next != null)
            {
                Console.WriteLine(fist.Value);
                fist = fist.Next;
            }
            Console.WriteLine(fist.Value);

            Console.WriteLine("倒序遍历");
            LinkedListNode<int> last = mLinkLists.Last;
            while (last.Previous != null)
            {
                Console.WriteLine(last.Value);
                last = last.Previous;
            }
            Console.WriteLine(last.Value);
        }
    }
    class 有序链表
    {
        static SortedList<int, int> mKeyValues = new SortedList<int, int>();
        public static void mian()
        {
            mKeyValues.Add(3, 1);
            mKeyValues.Add(1, 7);
            mKeyValues.Add(2, 5);
            Console.WriteLine("keys");
            foreach(int i in mKeyValues.Keys)
            {
                Console.WriteLine(i);
            }
            Console.WriteLine("Values");
            foreach (int i in mKeyValues.Values)
            {
                Console.WriteLine(i);
            }
        }
    }
    class 字典
    {
        public static void mian()
        {
            Console.WriteLine("Hello World!");
            int a = 5;
            a.GetHashCode();
            Console.WriteLine(a.GetHashCode());
            int b = 7;
            int c = 7;
            Console.WriteLine(b.GetHashCode());
            Console.WriteLine(c.GetHashCode());
            var dict = new Dictionary<int, string>()
            {
                [3] = "three",
                [7] = "seven"
            };
            foreach (var i in dict.Keys)
            {
                Console.WriteLine(i);
            }
            foreach (var i in dict.Values)
            {
                Console.WriteLine(i);
            }
        }
    }
    class 有序字典
    {
        public static void mian()
        {
            var sortDictionary = new SortedDictionary<int, int>();
            sortDictionary.Add(1, 2);
            sortDictionary.Add(2, 1);
            Console.WriteLine("Keys");
            foreach (var i in sortDictionary.Keys)
            {
                Console.WriteLine(i);
            }
            Console.WriteLine("Values");
            foreach (var i in sortDictionary.Values)
            {
                Console.WriteLine(i);
            }
        }
    }
    class 集
    {
        static HashSet<int> ts = new HashSet<int>();
        static SortedSet<int> vs = new SortedSet<int>();
        public static void mian()
        {
            ts.Add(1);
            ts.Add(2);
            ts.Add(2);
            Console.WriteLine("HashSet");
            hashDisplay();
            vs.Add(2);
            vs.Add(2);
            vs.Add(1);
            Console.WriteLine("SortedSet");
            hashDisplay();

        }
        private static void hashDisplay()
        {
            foreach(int i in ts)
            {
                Console.WriteLine(i);
            }
        }
        private static void sortDisplay()
        {
            foreach (int i in vs)
            {
                Console.WriteLine(i);
            }
        }
    }
}

运行效果

列表

列表
3的位置:0
列表
3
2
7
5
排序后的列表
2
3
5
7
删除后的列表
7

 队列

5
7
3

 栈

pop前的栈
3
7
5
pop后的栈
7
5
Peek:7
Peek后的栈
7
5
Contains:True

链表

正序遍历
1
5
3
7
倒序遍历
7
3
5
1

有序链表

keys
1
2
3
Values
7
5
1

 字典

Hello World!
5
7
7
3
7
three
seven

有序字典

Keys
1
2
Values
2
1

HashSet
1
2
SortedSet
1
2
发布了476 篇原创文章 · 获赞 38 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/xie__jin__cheng/article/details/104049862
今日推荐