C#中的集合对象总结
2016-05-20 14:10
441 查看
1、哈希表:
2、ArrayList:
3、HashSet:
4、List:
5、Queue:
6、stack:
7、LinkedList:
8、SortedList:
9、Dictionary:
10、SortedDictionary:
< //哈希表 Hashtable student = new Hashtable(); for (int i = 0; i < 10; i++) { string key = "sk" + i.ToString(); string value = "sv" + i.ToString(); if (!student.ContainsKey(key)) { student.Add(key, value); } } //根据键移除元素 student.Remove("sk3"); foreach (DictionaryEntry element in student) { string id = element.Key.ToString(); string name = element.Value.ToString(); Debug.WriteLine("学生的ID:" + id + ",学生的姓名:" + name); } <span style="white-space:pre"> </span> //学生的ID:sk9,学生的姓名:sv9 <span style="white-space:pre"> </span> //学生的ID:sk8,学生的姓名:sv8 <span style="white-space:pre"> </span> //学生的ID:sk5,学生的姓名:sv5 <span style="white-space:pre"> </span> //学生的ID:sk6,学生的姓名:sv6 <span style="white-space:pre"> </span> //学生的ID:sk7,学生的姓名:sv7 //学生的ID:sk4,学生的姓名:sv4 <span style="white-space:pre"> </span> //学生的ID:sk1,学生的姓名:sv1 <span style="white-space:pre"> </span> //学生的ID:sk0,学生的姓名:sv0 <span style="white-space:pre"> </span> //学生的ID:sk2,学生的姓名:sv2
2、ArrayList:
<span style="white-space:pre"> </span> ArrayList arrlist = new ArrayList(); arrlist.Add("item0"); arrlist.Add("item1"); arrlist.Add("item2"); arrlist.Add("item3"); foreach (int n in new int[3] { 0, 1, 2 }) { arrlist.Add(n); } //arrlist.Remove(0);//移除值为0的第一个元素 //arrlist.RemoveAt(3);//移除index为3的元素 //arrlist.Insert(1, "apple");//在index为1的位置插入元素 for (int i = 0; i < arrlist.Count; i++) { Debug.WriteLine(arrlist[i].ToString()); }
3、HashSet:
<span style="white-space:pre"> </span> HashSet<string> hSet = new HashSet<string>(); hSet.Add("item0"); hSet.Add("item1"); hSet.Add("item0"); hSet.Add("item0"); foreach (string item in hSet) { Debug.WriteLine("foreach=" + item); } //foreach=item0 //foreach=item1
4、List:
<span style="white-space:pre"> </span> //列表 //list. List<string> list = new List<string>(); list.Add("item0"); list.Add("item1"); list.Add("item2"); for (int i = 0; i < list.Count; i++) { Debug.Write("list[" + i + "]=" + list[i] + "\n"); } list.RemoveAt(0); Debug.Write("删除掉一个元素\n"); for (int j = 0; j < list.Count; j++) { Debug.Write("list[" + j + "]=" + list[j] + "\n"); } Debug.Write("或者用foreach来遍历\n"); foreach (string item in list) { Debug.Write("foreach元素=" + item + "\n"); } Debug.Write("添加数组\n"); list.AddRange(new string[] { "添加元素1", "添加元素2", "添加元素3" }); list.ForEach(ShowItem);
<span style="white-space:pre"> </span>private static void ShowItem(string item) { Debug.Write("添加后遍历的item=" + item + "\n"); }
5、Queue:
<span style="white-space:pre"> </span> //队列 //先进先出 Queue<string> queue = new Queue<string>(); queue.Enqueue("item0"); queue.Enqueue("item1"); queue.Enqueue("item2"); queue.Enqueue("item3"); foreach (string item in queue) { Debug.Write("foreach queue=" + item + "\n"); } Debug.Write("__________________用while方式_________________\n"); while (queue.Count > 0) { Debug.Write("while=" + queue.Dequeue() + "\n"); }
6、stack:
<span style="white-space:pre"> </span> //栈 //先进后出 Stack<string> stack = new Stack<string>(); stack.Push("item0"); stack.Push("item1"); stack.Push("item2"); stack.Push("item3"); foreach (string item in stack) { Debug.Write("stack-foreach:" + item + "\n"); } Debug.Write("__________________用while方式_________________\n"); while (stack.Count > 0) { Debug.Write("stack-while:" + stack.Pop() + "\n"); }
7、LinkedList:
<span style="white-space:pre"> </span> //链表 LinkedList<string> lList = new LinkedList<string>(); LinkedListNode<string> node = new LinkedListNode<string>("root"); lList.AddFirst(node); node = lList.AddAfter(node, "item0"); node = lList.AddAfter(node, "item1"); node = lList.AddAfter(node, "item2"); node = lList.AddAfter(node, "item3"); foreach (string item in lList) { Debug.WriteLine("foreach-lList:" + item); } node = lList.First; Debug.WriteLine("第一个元素:" + node.Value); node = lList.Last; Debug.WriteLine("最后一个元素:" + node.Value); MyList<string> list = new MyList<string>(); for (int i = 0; i < 10; i++) { list.AddHead("item" + i); } foreach (string item in list) { Debug.WriteLine(item); }
<span style="white-space:pre"> </span>//item9 <span style="white-space:pre"> </span>//item8 <span style="white-space:pre"> </span>//item7 <span style="white-space:pre"> </span>//item6 <span style="white-space:pre"> </span>//item5 <span style="white-space:pre"> </span>//item4 <span style="white-space:pre"> </span>//item3 <span style="white-space:pre"> </span>//item2 <span style="white-space:pre"> </span>//item1 <span style="white-space:pre"> </span>//item0
MyList<int> list = new MyList<int>(); for (int i = 0; i < 10; i++) { list.AddHead(i); } foreach (int item in list) { Debug.WriteLine(item); }
<span style="white-space:pre"> </span>//9 <span style="white-space:pre"> </span>//8 <span style="white-space:pre"> </span>//7 <span style="white-space:pre"> </span>//6 <span style="white-space:pre"> </span>//5 <span style="white-space:pre"> </span>//4 <span style="white-space:pre"> </span>//3 <span style="white-space:pre"> </span>//2 <span style="white-space:pre"> </span>//1 <span style="white-space:pre"> </span>//0
8、SortedList:
SortedList<int, string> sList = new SortedList<int, string>(); sList.Add(5, "item0"); sList.Add(25, "item1"); sList.Add(24, "item2"); sList.Add(475, "item3"); foreach (KeyValuePair<int, string> item in sList) { //根据key的顺序来 Debug.WriteLine("key=" + item.Key.ToString() + ",value=" + item.Value); }
9、Dictionary:
Dictionary<int, string> dict = new Dictionary<int, string>(); dict.Add(141, "item0"); dict.Add(46, "item1"); dict.Add(541, "item2"); dict.Add(21, "item3"); foreach (KeyValuePair<int, string> item in dict) { //按添加的顺序来 Debug.WriteLine("key=" + item.Key.ToString() + ",value=" + item.Value); }
10、SortedDictionary:
SortedDictionary<int, string> dict = new SortedDictionary<int, string>(); dict.Add(23, "item0"); dict.Add(54, "item1"); dict.Add(132, "item2"); dict.Add(12, "item3"); foreach (KeyValuePair<int, string> item in dict) { //按key的顺序来 Debug.WriteLine("key=" + item.Key.ToString() + ",value=" + item.Value); }
<span style="white-space:pre"> </span>//key=12,value=item3 <span style="white-space:pre"> </span>//key=23,value=item0 <span style="white-space:pre"> </span>//key=54,value=item1 <span style="white-space:pre"> </span>//key=132,value=item2
相关文章推荐
- C#多线程技术总结(同步)
- C#多线程技术总结(异步)
- C#设计模式之简单工厂模式(Simple Factory)
- C# 自己用到的几个参数转换方法
- C#技术开发
- C#技术开发
- C#windows service服务
- (C#) 使用Nullable类型
- C#多线程那点事——信号量(Semaphore)
- C#/.NET 基础学习
- C#技术开发中心
- [C#] .NET4.0中使用4.5中的 async/await 功能实现异
- 浅谈对C#-lock()的理解
- c#中垃圾回收机制
- c#验证码
- C# winform 程序独立运行(脱离 .NET Framework运行,绿色运行)
- C# ~ 从 XML 到 Linq 到 Linq to XML
- C# ~ 从 XML 到 Linq 到 Linq to XML
- C# 模拟 鼠标 键盘操作
- C# protobuf的使用方法