ASP.NET集合类(转)


  1 (一)ArrayList类:表示大小可按需动态增加的数组
2 protected void Page_Load(object sender, EventArgs e)
3 {
4 ArrayList al = new ArrayList();
5 al.Add(100);//单个添加
6 foreach (int num in new int[4]{ 1, 2, 3, 4 })
7 {
8 al.Add(num);//集体添加方法一
9 }
10 int[] num2 = new int[2] { 5, 6 };
11 al.AddRange(num2);//集体添加方法二
12 al.Remove(3);//移除值为3的
13 al.RemoveAt(3);//移除第3个
14
15 ArrayList al2 = new ArrayList(al.GetRange(1, 3));
16 //新ArrayList只取旧ArrayList一部份
17 Response.Write("foreach遍历:<br/>");
18 foreach (int i in al2)//不要强制转换
19 {
20 Response.Write(i+"<br/>");//遍历方法一
21 }
22 Response.Write("for遍历:<br/>");
23 for (int i = 0; i < al2.Count; i++)//数组是length
24 {
25 int n = (int)al2[i];//一定要强制转换
26 Response.Write(n+"<br/>");//遍历方法二
27 }
28 }
29 (二)Queue类(队列):表示对象的先进先出集合。
30 protected void Page_Load(object sender, EventArgs e)
31 {
32 Queue qu = new Queue();
33 foreach (int i in new int[4] { 1, 2, 3, 4 })
34 {
35 qu.Enqueue(i);//入队
36 }
37 Response.Write("遍历:<br/>");
38 foreach (int i in qu)
39 {
40 Response.Write(i + "<br/>");//遍历
41 }
42
43 Response.Write("出队:<br/>");
44 //移除并返回队首元素
45 Response.Write(qu.Peek());
46
47 //返回队首元素
48 Response.Write(qu.Peek());
49 }
50 (三)Stack类(栈):表示对象的先后进先出集合。Push入栈方法,Pop出栈方法。
51 protected void Page_Load(object sender, EventArgs e)
52 {
53 Stack sk = new Stack();
54 foreach (int i in new int[4] { 1, 2, 3, 4 })
55 {
56 sk.Push(i);//入栈
57 }
58 Response.Write("栈的遍历:<br/>");
59 foreach (int i in sk)
60 {
61 Response.Write(i+"<br/>");//遍历
62 }
63
64 Response.Write("出栈:<br/>");
65 Response.Write(sk.Pop() + "<br/>");//遍历
66 Response.Write(sk.Peek() + "<br/>");//遍历
67 }
68 (四)Hashtable哈希表:键/值对的集合,这些键/值对根据键的哈希代码进行组织。
69 protected void Page_Load(object sender, EventArgs e)
70 {
71 Hashtable ht = new Hashtable();//创建一个Hashtable实例
72 ht.Add("E", "4");//添加key/value键值对
73 ht.Add("A", "1");
74 ht.Add("C", "3");
75 ht.Add("B", "2");
76 Response.Write("哈希表的遍历:<br/>");
77 ArrayList akeys = new ArrayList(ht.Keys);
78 akeys.Sort(); //按字母顺序进行排序
79 foreach (string st in akeys)
80 {
81 Response.Write(st + ":");
82 Response.Write(ht[st]+"<br/>");//排序后输出
83 }
84
85 string s = (string)ht["A"];
86 Response.Write("s为:"+s+"<br/>");
87 if (ht.Contains("E")) //是否包含特定键,返回true/false
88 {
89 Response.Write("the E key:exist<br/>");
90 }
91 ht.Remove("C");//移除一个key/value键值对
92 Response.Write(ht["A"]+"<br/>");//此处输出a
93 ht.Clear();//移除所有元素
94 Response.Write(ht["A"]+"<br/>"); //此处将不会有任何输出
95 }
96 (五)SortedList类:表示键/值(key / value)对的集合,与哈希表类似,区别在于SortedList中的键(key)数组是排好序的。
97 protected void Page_Load(object sender, EventArgs e)
98 {
99 SortedList sl = new SortedList();
100 sl["c"] = 41;
101 sl["a"] = 42;
102 sl["d"] = 11;
103 sl["b"] = 13;
104 ArrayList arr = new ArrayList(sl.Keys);
105 foreach (string s in arr)
106 {
107 Response.Write(s + ":");
108 Response.Write(sl[s]+"<br/>");
109 }
110 }
111 (六)Dictionary泛型集合:
112 泛型最常见的用途是泛型集合,命名空间using System.Collections.Generic;中包含了一些基于泛型的集合类,使用泛型集合类可以提高类型安全性和性能,还避免了非泛型集合的重复装箱和拆箱过程。很多非泛型集合类都有对应的泛型集合类,如:
113 非泛型集合类 ~ 泛型集合类
114 ArrayList List<T>
115 Hashtable Dictionary<T>
116 Queue Queue<T>
117 Stack Stack<T>
118 SortedList SortedList<T>
119 如果我们操纵的数据类型相对确定的话,用Dictionary<TKey, TValue>集合类来存储数据会更方便。
120 protected void Page_Load(object sender, EventArgs e)
121 {
122 Dictionary<string, string> myDic = new Dictionary<string, string>();
123 myDic.Add("aaa", "111");
124 myDic.Add("bbb", "222");
125 myDic.Add("ccc", "333");
126 myDic.Add("ddd", "444");
127 //如果添加已经存在的键,add方法会抛出异常
128 try
129 {
130 myDic.Add("ddd", "ddd");
131 }
132 catch (ArgumentException ex)
133 {
134 Response.Write("此键已经存在:" + ex.Message+"<br/>");
135 }
136 //解决add()异常的方法是用ContainsKey()方法来判断键是否存在
137 if (!myDic.ContainsKey("ddd"))
138 {
139 myDic.Add("ddd", "ddd");
140 }
141 else
142 {
143 Response.Write("此键已经存在!"+"<br/>");
144 }
145
146 //而使用索引器来负值时,如果建已经存在
147 //就会修改已有的键的键值,而不会抛出异常
148 myDic["ddd"] = "555";
149 myDic["eee"] = "666";
150
151 //使用索引器来取值时,如果键不存在就会引发异常
152 try
153 {
154 Response.Write("不存在的键\"fff\"的键值为:" + myDic["fff"]+"<br/>");
155 }
156 catch (KeyNotFoundException ex)
157 {
158 Response.Write("没有找到键引发异常:" + ex.Message + "<br/>");
159 }
160 //解决上面的异常的方法是使用ContarnsKey() 来判断时候存
161 //在键,如果经常要取健值得化最好用
162 //TryGetValue方法来获取集合中的对应键值
163 string value = "";
164 if (myDic.TryGetValue("fff", out value))
165 {
166 Response.Write("\"fff\"的键值为:" + value + "<br/>");
167 }
168 else
169 {
170 Response.Write("没有找到对应键的键值" + "<br/>");
171 }
172
173 //下面用foreach 来遍历键值对
174 //泛型结构体用来存储健值对
175 foreach (KeyValuePair<string, string> kvp in myDic)
176 {
177 Response.Write(kvp.Key+":");
178 Response.Write(kvp.Value+"<br/>");
179 }
180 //获取值得集合
181 Response.Write("方法一:");
182 foreach (string s in myDic.Values)
183 {
184 Response.Write(s+"<br/>");
185 }
186 //获取值得另一种方式
187 Response.Write("方法二:");
188 Dictionary<string, string>.ValueCollection values = myDic.Values;
189 foreach (string s in values)
190 {
191 Response.Write(s+"<br/>");
192 }
193 }
194 本文来源:http://www.cnblogs.com/moss_tan_jun/archive/2010/09/20/1831867.html
195 (已作部分修改)

ASP.NET集合类(转)

时间: 2024-10-12 18:13:01

ASP.NET集合类(转)的相关文章

大家好

http://www.yugaopian.com/people/259723 http://www.yugaopian.com/people/259744 http://www.yugaopian.com/people/259783 http://www.yugaopian.com/people/259824 http://www.yugaopian.com/people/259839 http://www.yugaopian.com/people/259933 http://www.yugao

阿哥吗卡怪每次哦阿哥看啦过啦嘎开吃麻辣个啊蓝光

http://www.xx186.com/web/web_kpic.asp?id=156613http://www.xx186.com/web/web_kpic.asp?id=156608http://www.xx186.com/web/web_kpic.asp?id=156605http://www.xx186.com/web/web_kpic.asp?id=156602http://www.xx186.com/web/web_kpic.asp?id=156600http://www.xx18

风格更家霍建华

http://www.9ku.com/fuyin/daogaoo.asp?dgid=119864http://www.9ku.com/fuyin/daogaoo.asp?dgid=119867http://www.9ku.com/fuyin/daogaoo.asp?dgid=119876http://www.9ku.com/fuyin/daogaoo.asp?dgid=119879http://www.9ku.com/fuyin/daogaoo.asp?dgid=119883http://www

,了可美军以本合同个v分

http://shike.gaotie.cn/zhan.asp?zhan=%A1%FE%CE%F7%B0%B2%B8%B4%B7%BD%B5%D8%B7%D2%C5%B5%F5%A5%C6%AC%C4%C4%C0%EF%C2%F2Q%A3%BA%A3%B1%A3%B1%A3%B2%A3%B7%A3%B4%A3%B0%A3%B1%A3%B1%A3%B7%A3%B5%A1%F4 http://shike.gaotie.cn/zhan.asp?zhan=%A8%7D%CD%AD%B4%A8%B8%B4

ASP.NET MVC路由系统的核心对象介绍

众所周知,ASP.NET MVC有一套自己的路由系统.这套路由系统是在原来的ASP.NET 路由系统上扩展过来的.今天这篇文章就来聊聊MVC路由系统中非常关键的一些对象. ASP.NET MVC路由系统主要由以下几个核心对象:         1.RouteCollection(RouteCollextionExtentions)         2.RouteTable         3.RouteData         4.Route:RouteBase         5.URLRou

asp.net c# 网上搜集面试题目大全(附答案)

1.String str=new String("a")和String str = "a"有什么区别? String str = "a"; 这个只是一个引用,内存中如果有“a"的话,str就指向它,如果没有才创建如后还用到"a"这个字符串的话并且是这样用: String str1 = "a"; String str2 = "a"; String str2 = "a&q

ASP.NET 性能优化

一.返回多个数据集 检查你的访问数据库的代码,看是否存在着要返回多次的请求.每次往返降低了你的应用程序的每秒能够响应请求的次数.通过在单个数据库请求中返回多个结果集,可以减少与数据库通信的时间,使你的系统具有扩展性,也可以减少数据库服务器响应请求的工作量. 如果用动态的SQL语句来返回多个数据集,那用存储过程来替代动态的SQL语句会更好些.是否把业务逻辑写到存储过程中,这个有点争议.但是我认为,把业务逻辑写到存储过程里面可以限制返回结果集的大小,减小网络数据的流量,在逻辑层也不用在过滤数据,这是

asp.net 学习

1.维护数据库的完整性.一致性.你喜欢用触发器还是自写业务逻辑?为什么? 答:尽可能用约束(包括CHECK.主键.唯一键.外键.非空字段)实现,这种方式的效率最好:其次用触发器,这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性.一致性:最后再考虑用自写业务逻辑实现,但这种方式效率最低.编程最复杂,当为下下之策. 2.什么是事务?什么是锁? 答:事务是指一个工作单元,它包含了一组数据操作命令,并且所有的命令作为一个整体一起向系统提交或撤消请求操作,即这组命令要么都执行,要么都不执行

ASP.NET常见命名空间及其功能描述

命名空间 |  功能描述 System |  包含CLR的基本类型和基类,定义了常用的值类型和引用类型,事件.接口.属性和异常处理等 System.Text | 包含用于文本处理的类,实现了不同编码方式操作文本 System.IO | 操作I/O流,提供了处理文件.目录和内存流的读/写与遍历操作等 System.Windows.Forms | 包含了用于创建Window GUI应用程序的类 System.Data | 提供的各种类实习哪了ADO.NET System.Web | 用于实现ASP.