Dictionary应用

代码
  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
<stringstring> dico = new Dictionary<stringstring>();
            dico.Add(
"carl""23");
            dico.Add(
"hubcarl""24");
            
foreach (KeyValuePair<stringstring> 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/p/1706356.html