• C#中集合汇总


    平时敲代码,只关注如何使用,没有深入去研究一些本质性的东西,靠死记硬背,不去真正理解,其实最后是很难记住的。

    对于C#常见的集合,自己平时好像只有用到List,Dictionary,ArrayList,Array等几个,其实C#的集合远远不止这几个,

    一直认为Dictionary是有序集合,哎,错了好久,今天总算明白了。

    C#中的集合主要放在System.Collections和System.Collections.Generic这个两个命名空间下,其中System.Collections.Generic专门用于泛型集合,如下图:

    关于各类集合的差异,网上已有不少大牛做过总结,参考如下:

    http://blog.csdn.net/ceclar123/article/details/8655853

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApplication_List
    {
        class Program
        {
            static void Main(string[] args)
            {
                ListTest();
                QueueTest();
                StackTest();
                LinkedListTest();
                SortedListTest();
                DictionaryTest();
                SortDictionaryTest();
                SetTest();
                SortedSetTest();
    
              
                Console.Read();
            }
    
            #region MyRegion
    
            /// <summary>
            /// 列表
            /// </summary>
            static void ListTest()
            {
                Console.WriteLine("List");
    
                List<string> list = new List<string>();
                list.Add("张三");
                list.Add("李四");
                list.Add("王五");
    
                for (int i = 0; i < list.Count; i++)
                {
                    Console.WriteLine("for:" + i.ToString() + " " + list[i]);
                }
    
                Console.WriteLine(".................");
    
                list.RemoveAt(0);
                foreach (var item in list)
                {
                    Console.WriteLine("Foreach:" + item);
                }
    
                Console.WriteLine(".................");
    
                list.AddRange(new string[] { "demo1", "demo2", "demo3" });
                list.ForEach(PrintEach);
    
                Console.WriteLine(".................");
    
            }
    
            private static void PrintEach(string item)
            {
                Console.WriteLine("Foreach:" + item);
            }
    
            #endregion
    
            /// <summary>
            /// 队列
            /// </summary>
            static void QueueTest()
            {
                Console.WriteLine("Queue");
    
                Queue<string> queue = new Queue<string>();
                queue.Enqueue("张三");
                queue.Enqueue("李四");
                queue.Enqueue("王五");
                queue.Enqueue("田六");
                queue.Enqueue("赵七");
    
                Console.WriteLine(".................");
    
                foreach (string item in queue)
                {
                    Console.WriteLine("foreach迭代:" + item);
                }
    
                Console.WriteLine(".................");
    
                while (queue.Count > 0)
                {
                    Console.WriteLine("出队:" + queue.Dequeue());
                }
            }
    
            /// <summary>
            ////// </summary>
            public static void StackTest()
            {
                Console.WriteLine("stack");
    
                Stack<string> stack = new Stack<string>();
                stack.Push("张三");
                stack.Push("李四");
                stack.Push("王五");
                stack.Push("田六");
                stack.Push("赵七");
    
                foreach (string item in stack)
                {
                    Console.WriteLine("Foreach迭代:" + item);
                }
                Console.WriteLine(".................");
    
                while (stack.Count > 0)
                {
                    Console.WriteLine("出栈:" + stack.Pop());
                }
                Console.WriteLine(".................");
            }
    
            /// <summary>
            /// 链表
            /// </summary>
            public static void LinkedListTest()
            {
                Console.WriteLine("LinkedList");
    
                LinkedList<string> linkedList = new LinkedList<string>();
                LinkedListNode<string> node = new LinkedListNode<string>("root");
                linkedList.AddFirst(node);
                linkedList.AddAfter(node, "张三");
                linkedList.AddAfter(node, "李四");
                linkedList.AddAfter(node, "王五");
                linkedList.AddAfter(node, "田六");
    
                foreach (string item in linkedList)
                {
                    Console.WriteLine("foreach迭代:" + item);
                }
                Console.WriteLine(".................");
    
                node = linkedList.First;
                Console.WriteLine("第一个元素:" + node.Value);
                node = linkedList.Last;
                Console.WriteLine("最后一个元素:" + node.Value);
                Console.WriteLine(".................");
            }
    
            /// <summary>
            /// 有序列表
            /// </summary>
            public static void SortedListTest()
            {
                Console.WriteLine("SortedList");
    
                SortedList<int, string> sortList = new SortedList<int, string>();
                sortList.Add(100,"张三");
                sortList.Add(21,"李四");
                sortList.Add(13,"王五");
                sortList.Add(44,"田六");
    
                foreach (KeyValuePair<int, string> item in sortList)
                {
                    Console.WriteLine("key=" + item.Key + ";value=" + item.Value);
                }
            }
    
            /// <summary>
            /// 字典
            /// </summary>
            public static void DictionaryTest()
            {
                Console.WriteLine("Dictionary");
    
                Dictionary<int, string> dict = new Dictionary<int, string>();
                dict.Add(11, "张三");
                dict.Add(1, "李四");
                dict.Add(2, "王五");
                dict.Add(16, "田六");
                dict.Add(13, "赵七");
    
                foreach (KeyValuePair<int, string> item in dict)
                {
                    Console.WriteLine("key=" + item.Key + ";value=" + item.Value);
                }
            }
    
            /// <summary>
            /// 有序字典
            /// </summary>
            public static void SortDictionaryTest()
            {
                Console.WriteLine("SortDictionary");
    
                SortedDictionary<int, string> sortDict = new SortedDictionary<int, string>();
                sortDict.Add(11, "张三");
                sortDict.Add(1, "李四");
                sortDict.Add(2, "王五");
                sortDict.Add(16, "田六");
                sortDict.Add(13, "赵七");
    
                foreach (KeyValuePair<int, string> item in sortDict)
                {
                    Console.WriteLine("key=" + item.Key + ";value=" + item.Value);
                }
            }
    
            /// <summary>
            ////// </summary>
            public static void SetTest()
            {
                Console.WriteLine("HashSet");
    
                HashSet<string> hSet = new HashSet<string>();
                hSet.Add("张三");
                hSet.Add("李四");
                hSet.Add("王五");
                hSet.Add("田六");
                hSet.Add("赵七");
    
                foreach (String item in hSet)
                {
                    Console.WriteLine("foreach迭代:" + item);
                }  
            }
    
            /// <summary>
            /// 有序集
            /// </summary>
            public static void SortedSetTest()
            {
                Console.WriteLine("HashSet");
    
                SortedSet<string> sortSet = new SortedSet<string>();
                sortSet.Add("张三");
                sortSet.Add("李四");
                sortSet.Add("王五");
                sortSet.Add("田六");
                sortSet.Add("赵七");
    
                foreach (String item in sortSet)
                {
                    Console.WriteLine("foreach迭代:" + item);
                }
            }
        }
    }
    View Code
  • 相关阅读:
    Java入门——(3)面对对象(下)
    Java入门——(8)网络编程
    Java入门——(2)面对对象(上)
    MAC下的Intellij IDEA常用快捷键
    RedHat安装yum+配置国内yum源
    XGBoost算法
    Bagging和Boosting 概念及区别
    关于python的sort和sorted
    sklearn中常用数据预处理方法
    安装Scala
  • 原文地址:https://www.cnblogs.com/qianxingdewoniu/p/5356578.html
Copyright © 2020-2023  润新知