• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#索引器、哈希表Hashtabl、字典Dictionary

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

一、索引

索引器类似于属性,不同之处在于它们的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<stringstring> 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<stringint> dic = new Dictionary<stringint>();

//添加两个键为"成绩1","成绩2";并为它们的值赋为0
dic["成绩1"= 0;
dic[
"成绩2"= 0;

// 把这两个值分别加1
dic["成绩1"]++;
dic[
"成绩2"]++;

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
c#共享事件处理程序发布时间:2022-07-18
下一篇:
c++基础知识--操作符sizeof发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap