//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.