Dictionary应用

ExpandedBlockStart.gif 代码
   public   class  Person
    {
        
private   string  m_name;
        
private   int  m_birthday;
        
public  Person( string  name,  int  birthday)
        {
            m_name 
=  name;
            m_birthday 
=  birthday;
        }
        
public   override   int  GetHashCode()
        {
            
return  m_birthday  *  m_name.GetHashCode();
        }
        
public   override   bool  Equals( object  obj)
        {
            Person person 
=  obj  as  Person;
            
if  (person  !=   null )
                
return  (person.GetHashCode()  ==  GetHashCode());
            
else
                
return   false ;
        }
      
    }
    
public   class  Article : IComparable < Article >
    {
        
public   decimal  price;
        
public  Article( decimal  price)
        {
            
this .price  =  price;
        }
        
int  IComparable < Article > .CompareTo(Article art)
        {
            
return  price.CompareTo(art.price);
        }
    }

        
///   <summary>
        
///  Dictionary遍历
        
///   </summary>
         public   static   void  DictionaryDisplay()
        {
            Dictionary
< string string >  dico  =   new  Dictionary < string string > ();
            dico.Add(
" carl " " 23 " );
            dico.Add(
" hubcarl " " 24 " );
            
foreach  (KeyValuePair < string string >  item  in  dico)
            {
                System.Console.WriteLine(item.Key 
+   " : "   +  item.Value);
            }
        }
        
///   <summary>
        
///  GetHashCode
        
///   </summary>
         public   static   void  Dictionary()
        {
            
// object 类提供了Equals()和GetHashCode()两个方法
            
// Dictionary<K,V>的算法把这两个算法用于在K类型上。
            
// 如果打算复写一个类的Equals()方法,而这个类的实例又是用于表示算列表中的键,那就该同时复写GetHashCode()方法
            
// 以满足如下约束:对于x和y类型的所有实例,如果x.GetHashCode()和y.GetHashCode()返回两个不同的整数,
            
// 那么x.Equals(y)和y.Equals(x)都必须返回false.
            Dictionary < Person,  string >  dictionary  =   new  Dictionary < Person,  string > ();
            Person person1 
=   new  Person( " person1 " 1986 );
            Person person2 
=   new  Person( " person2 " 1987 );
            dictionary.Add(person1, 
" carl " );
            dictionary.Add(person2, 
" anan " );
            Console.WriteLine(dictionary.ContainsKey(person1));

        }
        
///   <summary>
        
///  自定义类型排序
        
///   </summary>
         public   void  ArraySort()
        {
            Article [] arr
= { new  Article(24M), new  Article (25M), new  Article (23M)};
            Array.Sort
< Article > (arr);

        }

 

转载于:https://www.cnblogs.com/hubcarl/archive/2010/04/07/1706356.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值