摘要:(2010-08-02) C#.NET HashTable And SortList
HashTable 實作 IDictionary
SortList 實作 IDictionary 實作 IList 實作 ICollection
類別1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace mod02
{
class Employee:IComparable
{
private String _id;
public String Id
{
get { return _id; }
set { _id = value; }
}
private String _name;
public String Name
{
get { return _name; }
set { _name = value; }
}
#region IComparable<Employee> 成員
public int CompareTo(Object other)
{
return this.Id.CompareTo(((Employee)other).Id);
}
#endregion
}
}類別2
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace mod02
{
class Car:IComparable
{
private String _brand;
public String Brand
{
get { return _brand; }
set { _brand = value; }
}
#region IComparable 成員
public int CompareTo(object obj)
{
throw new NotImplementedException();
}
#endregion
}
}主程式 HashTable
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace mod02
{
class TestHashAndSortList
{
public static void Main()
{
//雜湊沒有順序性
System.Collections.Hashtable hash = new System.Collections.Hashtable();
hash.Add(new Employee() { Id = "0001", Name = "eric" },
new Car() { Brand = "福斯" });
hash.Add(new Employee() { Id = "0002", Name = "linda" },
new Car() { Brand = "日產" });
hash.Add(new Employee() { Id = "0003", Name = "sam" },
new Car() { Brand = "兵土" });
//取出所有Key
System.Collections.ICollection keys = hash.Keys;
System.Collections.IEnumerator em = keys.GetEnumerator();
while (em.MoveNext())
{
Employee emp = (Employee)em.Current;
//問汽車
Car car = (Car)hash[emp];
System.Console.WriteLine(String.Format("員工:{0} 汽車:{1}", emp.Name, car.Brand));
}
}
}
}
主程式 SorList
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace mod02
{
class TestSortedList
{
public static void Main()
{
//雜湊沒有順序性
System.Collections.SortedList list = new System.Collections.SortedList();
list.Add(new Employee() { Id = "0005", Name = "eric" },
new Car() { Brand = "福斯" });
list.Add(new Employee() { Id = "0002", Name = "linda" },
new Car() { Brand = "日產" });
list.Add(new Employee() { Id = "0001", Name = "allen" },
new Car() { Brand = "兵土" });
System.Collections.ICollection col = list.Keys;
System.Collections.IEnumerator em = col.GetEnumerator();
while (em.MoveNext())
{
Employee emp = (Employee)em.Current;
Car car = (Car)list[emp];
System.Console.WriteLine(String.Format("員工:{0} 汽車:{1}", emp.Id, car.Brand));
}
}
}
}