在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一、索引器 索引器类似于属性,不同之处在于它们的get访问器采用参数。要声明类或结构上的索引器,使用this关键字。 示例:
索引器示例代码
/// <summary>
/// 存储星期几的类。声明了一个get访问器,它接受字符串,并返回相应的整数 /// </summary> public class 星期 { public string[] weeks = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" }; //索引器 它接受星期几的字符串,将它作为索引index public int this[string day] { //get访问器 并返回相应的整数 get { int i = 0; foreach (var item in weeks) { if (item == day) { return i; } i++; } //没找到返回-1 return -1; } } }
二、哈希表Hashtabl Hastable是哈希表的实现,能根据关键字取关键值,这key的类型是object, value的类型也是object。 在哈希表中添加一个key/value键值对:HashtableObject.Add(key,value); 在哈希表中去除某个key/value键值对:HashtableObject.Remove(key); 从哈希表中移除所有元素: HashtableObject.Clear(); 判断哈希表是否包含特定键key: HashtableObject.Contains(key); 遍历Hashtable对象的两种方法: 由于Hashtable每个元素都是一个键/值对,因此元素类型既不是键的类型,也不是值的类型,而是DictionaryEntry类型。
Hashtable示例代码
//方法一
foreach (System.Collections.DictionaryEntry de in myHashtable) { //注意HastTable内存储的默认类型是object,需要进行转换才可以输出 Console.WriteLine(de.Key.ToString()); Console.WriteLine(de.Value.ToString()); } //方法二 System.Collections.IDictionaryEnumerator enumerator = myHashtable.GetEnumerator(); while (enumerator.MoveNext()) { Console.WriteLine(enumerator.Key); // Hashtable关健字 Console.WriteLine(enumerator.Value); // Hashtable值 }
三、字典Dictionary Dictionary<Tkey,Tvalue>是Hastbale的泛型实现。
//遍历键
foreach (string key in myDictionary.Keys) { //遍历某键的值 foreach (string val in myDictionary[key]) { } }
由于 Dictionary 是键和值的集合,因此元素类型并非键类型或值类型。相反,元素类型是键类型和值类型的 KeyValuePair。
字典遍历示例
foreach (KeyValuePair<string, string> kvp in myDictionary)
{ string key = kvp.Key;//key包含了字典里的键 for (int i = 0; i < kvp.Value.Count; i++) { Response.Write(kvp.Value[i]); } }
示例:
代码
//定义一个<string,int>的Dictionary,让它的值进行添加(也可以用Add方法)
Dictionary<string, int> dic = new Dictionary<string, int>(); //添加两个键为"成绩1","成绩2";并为它们的值赋为0 dic["成绩1"] = 0; dic["成绩2"] = 0; // 把这两个值分别加1 dic["成绩1"]++; dic["成绩2"]++;
|
请发表评论