KeyCollection:
protected void Page_Load(object sender, EventArgs e)

{
if (!IsPostBack)

{
EmployeeCollection employees =
new EmployeeCollection();
employees.Add(new Employee(1, "Joe"));
employees.Add(new Employee(2, "Jim"));
employees.Add(new Employee(3, "Jane"));
if (employees.Contains(3))

{
Employee emp = employees[3];
Console.WriteLine(
"Employee ID={0}, Name={1}",
emp.ID, emp.Name);
}
Console.ReadLine();
}
}
internal class Employee

{
public readonly int ID;
public string Name;

public Employee(int id, string name)

{
this.ID = id;
this.Name = name;
}
}

internal class EmployeeCollection : KeyedCollection<Int32, Employee>

{
protected override int GetKeyForItem(Employee item)

{
return item.ID;
}
}
1
GroupDictionary:
2
internal class GroupDictionary<T> : Dictionary<String, List<T>>
3
{
4
public void Add(String key, T value)
5
{
6
List<T> list = null;
7
if (!this.ContainsKey(key) || !(this.TryGetValue(key, out list)))
8
{
9
list = new List<T>();
10
this.Add(key, list);
11
}
12
list.Add(value);
13
}
14
}
转载于:https://www.cnblogs.com/RuiLei/archive/2008/02/22/1077878.html