对Dictionary操作 查找项和排序 [代码记录]
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;
}
}
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;
}
}
1GroupDictionary:
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 }
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 }