//List类型 顺序表
        List<string> strList = new List<string>();
        strList.Add("11");
        strList.Add("22");
        strList.Add("33");
        strList.Add("33");
        strList.Add("44");
        strList.Add("55");
        strList.Add("55");
        strList.Add("66");
        strList.Add("11");
        Console.WriteLine(strList.Count); //集合内数据数量
        Console.WriteLine(strList[0] + "," + strList[1]); //索引器
        Console.WriteLine(strList.Contains("22")); //测试一个数据是否在集合内
        Console.WriteLine(strList.IndexOf("55")); //返回第一个相匹配的数据的下标
        Console.WriteLine(strList.LastIndexOf("55")); //返回最后一个相匹配的数据的下标
        //strList.Insert(2,"insert"); //在指定索引处插入数据
        //strList.Remove("33"); //删除第一个匹配的数据
        //strList.RemoveAt(4); //查找指定索引数据
        //strList.RemoveRange(1, 5); //删除指定索引范围内数据
        //strList.Reverse(); //反转
        //strList.Sort(); //排序
        Console.WriteLine();
        foreach (string str in strList)
        {
            Console.WriteLine(str);
        }

        //链表
        LinkedList<int> strLinkedList = new LinkedList<int>();
        strLinkedList.AddFirst(22); //在开头添加一个节点(可传递值或节点)
        strLinkedList.AddLast(33); //在结尾添加一个节点(可传递值或节点)
        strLinkedList.AddFirst(11);
        LinkedListNode<int> temp = strLinkedList.Find(22); //查找包含指定值的第一个节点
        LinkedListNode<int> temp1 = new LinkedListNode<int>(1);
        LinkedListNode<int> temp2 = new LinkedListNode<int>(2);
        strLinkedList.AddBefore(temp, 1); //在指定节点前添加一个新节点(可传递value或节点)
        //strLinkedList.AddBefore(temp, temp1);
        strLinkedList.AddAfter(temp, 2); //在指定节点后添加一个新节点(可传递value或节点)
        //strLinkedList.AddAfter(temp, temp2);
        Console.WriteLine(temp.Value); //当前节点的值value
        Console.WriteLine(temp.Next.Value); //当前节点的下一个节点的值
        Console.WriteLine(temp.Previous.Value); //当前节点的上一个节点的值
        //strLinkedList.RemoveFirst(); //移除第一个节点
        //strLinkedList.RemoveLast(); //移除最后一个节点
        strLinkedList.AddAfter(temp, 22);
        LinkedListNode<int> _temp = strLinkedList.FindLast(22);//查找包含指定值的最后一个节点
        //strLinkedList.Remove(22); //移除包含指定值的第一个节点(可传递value或节点)
        //strLinkedList.Clear();//清除所有节点
        Console.WriteLine(strLinkedList.Count);//节点数量
        Console.WriteLine(strLinkedList.First.Value);//第一个节点
        Console.WriteLine(strLinkedList.Last.Value);//最后一个节点
        Console.WriteLine(strLinkedList.Contains(33));//判断节点中是否存在指定值

        Console.WriteLine();
        foreach (int str in strLinkedList)
            Console.Write(str + " ");

        Console.ReadKey();

        //栈
        Stack<string> strStack = new Stack<string>();
        strStack.Push("one");//入栈
        strStack.Push("two");
        strStack.Push("three");
        strStack.Push("four");
        strStack.Push("five");
        //Console.WriteLine(strStack.Pop()); //栈顶出栈并返回栈顶值
        //Console.Write(strStack.Peek());//返回栈顶值
        Console.WriteLine(strStack.Count);
        Console.WriteLine(strStack.Contains("two"));
        string[] array = new string[10];
        //strStack.CopyTo(array, 5);//将stack复制到数组的指定索引处
        //array = strStack.ToArray();//将stack复制给一个数组

        //strStack.Clear();清空栈
        Console.WriteLine();
        foreach (string str in strStack)
            Console.Write(str + " ");
        Console.WriteLine();
        foreach (string str in array)
            Console.Write(str + " ");

        //队列
        Queue<string> strQueue = new Queue<string>();
        strQueue.Enqueue("one");//进队列
        strQueue.Enqueue("two");
        strQueue.Enqueue("three");
        strQueue.Enqueue("four");
        strQueue.Enqueue("five");
        //Console.WriteLine(strQueue.Dequeue());//队头出队列并返回值
        //strQueue.Clear();//清除队列
        Console.WriteLine(strQueue.Count);//队列长度
        Console.WriteLine(strQueue.Peek());//查看队头数据
        Console.WriteLine(strQueue.Contains("three"));//判断数据是否存在队列中

        string[] array = strQueue.ToArray();//转为数组

        Console.WriteLine();
        foreach (string str in strQueue)
            Console.Write(str + " ");
        Console.WriteLine();
        foreach (string str in array)
            Console.Write(str + " ");

        Console.ReadLine();

        //字典
        //键值对不能重复
        Dictionary<int, string> strDictionary = new Dictionary<int, string>();
        strDictionary.Add(1, "one");
        strDictionary.Add(2, "two");
        strDictionary.Add(3, "three");
        strDictionary.Add(4, "four");
        strDictionary.Add(5, "five");
        Console.WriteLine(strDictionary[4]);//索引器
        //strDictionary[3] = "123";//修改value
        Console.WriteLine(strDictionary.ContainsKey(5));//查询键是否存在
        Console.WriteLine(strDictionary.ContainsValue("one"));//查询值是否存在
        //strDictionary.Clear(); //清空
        //strDictionary.Remove(2);//按照键来删除键值对

        Console.WriteLine();
        foreach (KeyValuePair<int, string> str in strDictionary)
            Console.WriteLine(str.Key + ":" + str.Value);

        //Array(静态数组)
        int[] intArray = { 3, 9, 13, 7, 8, 5, 9, 10 };
        int[] array = new int[10];
        Console.WriteLine(intArray.Length);//数组长度
        Console.WriteLine(intArray.GetValue(3));//得到指定索引的值
        Console.WriteLine(intArray.GetLength(0));//得到当前数组指定维度的数据数量
        Console.WriteLine(intArray.GetUpperBound(0));//得到当前数组的最大索引
        Console.WriteLine(intArray.GetLowerBound(0));//得到当前数组的最小索引
        //intArray.SetValue(22, 5);//设置指定下标的数据
        //Array.Copy(intArray, array, 8);//从一个数组复制指定长度的数据到另一个数组的第一个位置开始
        intArray.CopyTo(array, 1);//从当前数组复制所有值到另一个数组指定索引处开始
        //Array.Clear(intArray, 2, 2);//清空指定数组从指定下标开始指定长度的值
        Console.WriteLine(Array.IndexOf(intArray, 9));//获取指定数组第一个匹配指定值的下标
        Console.WriteLine(Array.LastIndexOf(intArray, 9));//获取指定数组最后一个匹配指定值的下标
        //Array.Sort(intArray);排序
        //Array.Reverse(intArray);逆序

        Console.WriteLine();
        foreach (int i in intArray)
            Console.Write(i + " ");
        Console.WriteLine();
        foreach (int i in array)
            Console.Write(i + " ");

        //ArrayList(动态数组)
        ArrayList arrayList = new ArrayList();
        arrayList.Add(11);
        arrayList.Add("22");
        arrayList.Add(33);
        arrayList.Add(55);
        arrayList.Add(33);
        Console.WriteLine(arrayList.Count);//获取数组元素个数
        Console.WriteLine(arrayList.Capacity);//获取数组长度
        //arrayList.Remove(11);//删除匹配的元素
        //arrayList.RemoveAt(1);//删除指定索引的元素
        //arrayList.Sort();//排序(元素要同一类型)
        //arrayList.Reverse();//逆序  
        //arrayList.Clear();//清空
        //arrayList.Insert(1, "123");//在指定索引位置插入一个指定数据

        Console.WriteLine();
        foreach (Object oj in arrayList)
            Console.Write(oj + " ");

Q.E.D.