• C#中有很多集合类型


    C#中的集合

     

           C#中有很多集合类型,比如List<T>,Dictionary<TKey,TValue>,这些是我们常用的,但也有一些少众的场合使用的集合:特征类型的ReadOnly集合,Sort集合;封装特定算法类型的集合:Queue<T>(先进先出),Stack<T>(后进先出),LinkedList<T>(链表,每个元素承上启下);这些集合都是在特定的场合下使用,因为他们的特性限制了他的使用场景。

    复制代码
    /// <summary>
            /// 只读List
            /// </summary>
            static void ReadOnlyListTest()
            {
                IReadOnlyList<string> readOnlyList = new List<string>() { "a", "b", "c" };
                foreach (var item in readOnlyList)
                {
                    Console.WriteLine(item);
                }
                /*输出结果
                 a
                 b
                 c
                 */
            }
            /// <summary>
            /// 只读字典
            /// </summary>
            static void ReadOnlyDictionaryTest()
            {
                var readOnlyDictionary = new ReadOnlyDictionary<int, string>(
                    new Dictionary<int, string>
                    {
                        {5,"五"},
                        {1,"一"},
                        {10, "十"}
                    });
    
                foreach (var item in readOnlyDictionary)
                {
                    Console.WriteLine($"{item.Key}~{item.Value}");
                }
                /*输出结果
                 5~五
                 1~一
                 10~十
                 */
            }
    复制代码

    复制代码
      /// <summary>
            /// 排序列表
            /// </summary>
            static void SortListTest()
            {
                var sortList = new SortedList<int, string>();
                sortList.Add(10, "十");
                sortList.Add(5, "五");
                sortList.Add(1, "一");
                Console.WriteLine(sortList.Keys);
                foreach (var item in sortList)
                {
                    Console.WriteLine($"{item.Key}~{item.Value}");
                }
                /*输出结果
                 1~一
                 5~五
                 10~十
                 */
            }
            /// <summary>
            /// 排序字典
            /// </summary>
            static void SortDictionaryTest()
            {
                var sortDic = new SortedDictionary<int, string>();
                sortDic.Add(10, "十");
                sortDic.Add(5, "五");
                sortDic.Add(1, "一");
                Console.WriteLine(sortDic.Keys);
                foreach (var item in sortDic)
                {
                    Console.WriteLine($"{item.Key}~{item.Value}");
                }
                /*输出结果
                 1~一
                 5~五
                 10~十
                */
            }
            /// <summary>
            /// 排序set,不含重复值
            /// </summary>
            static void SortSetTest()
            {
                var sortSet = new SortedSet<int>();
                sortSet.Add(10);
                sortSet.Add(5);
                sortSet.Add(1);
                sortSet.Add(1);
                foreach (var item in sortSet)
                {
                    Console.WriteLine(item);
                }
                /*输出结果
                 1
                 5
                 10
                */
            }
    复制代码

     

     

    复制代码
    /// <summary>
            /// 链表:每个元素承上启下
            /// </summary>
            static void LinkedListTest()
            {
                var linkedList = new LinkedList<string>();
                linkedList.AddLast("2");
                linkedList.AddLast("3");
                linkedList.AddLast("5");
    
                linkedList.AddFirst("1");
    
                linkedList.AddBefore(linkedList.Find("5"), "4");
                foreach (var item in linkedList)
                {
                    Console.WriteLine(item);
                }
    
                Console.WriteLine($"2前面的值:{linkedList.Find("2").Previous.Value}");
                Console.WriteLine($"2后面的值:{linkedList.Find("2").Next.Value}");
    
                /*输出结果
                 1
                 2
                 3
                 4
                 5
                 2前面的值:1
                 2后面的值:3
                 */
            }
            /// <summary>
            /// 哈希集合
            /// </summary>
            static void HashSetTest()
            {
                var hashSet = new HashSet<string>();
                hashSet.Add("a");
                hashSet.Add("c");
                hashSet.Add("b");
                hashSet.Add("a");
                hashSet.Add("c");
                hashSet.Add("b");
                foreach (var item in hashSet)
                {
                    Console.WriteLine(item);
                }
                /*输出结果
                 a
                 b
                 c
                 */
            }
            /// <summary>
            /// 队列:先进先出
            /// </summary>
            static void QueueTest()
            {
                var queue = new Queue<int>();
                queue.Enqueue(1);
                queue.Enqueue(2);
                queue.Enqueue(3);
                foreach (var item in queue)
                {
                    Console.WriteLine(item);
                }
                Console.WriteLine($"dequeue元素:{queue.Dequeue()}");
                /*输出结果
                 1
                 2
                 3
                 dequeue元素:1
                 */
            }
            /// <summary>
            /// 堆栈:后进先出
            /// </summary>
            static void StackTest()
            {
                var stack = new Stack<int>();
                stack.Push(1);
                stack.Push(2);
                stack.Push(3);
                foreach (var item in stack)
                {
                    Console.WriteLine(item);
                }
                //pop元素
                Console.WriteLine($"pop元素:{stack.Pop()}");
                /*输出结果
                 3
                 2
                 1
                 pop元素:3
                 */
            }
    复制代码
  • 相关阅读:
    (三)数据预处理过程简介
    (二)数据挖掘需要哪些技术
    (一) 什么是数据挖掘?
    怎样提问呢?
    什么是自我意识
    高效能人士的七个习惯
    “U”型读书法
    CMDB学习之一
    层级选择器
    css选择器
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/16183867.html
Copyright © 2020-2023  润新知