.NET 有几个集合来完成你的任务。
列表
您可以创建一个包含所有实体的列表,并使用 Sort 方法对它们进行排序。示例如何按薪水排序(假设字段是公开的):
List<Emp> empCollection= new List<Emp>
{
new Emp { sal = 1000, firstName = "Chris", lastName = "Bakker" },
new Emp { sal = 1500, firstName = "Bea", lastName = "Smith" },
// etc.
};
empCollection.Sort((a,b) => a.sal.CompareTo(b.sal));
优点和缺点:
- 专业人士:您可以使用另一个键来收集集合。
- 缺点:虽然列表已排序,但如果在某个键上更快,则无法搜索。
排序字典
您也可以使用 SortedDictionary。字典是键和值的组合。就您而言,价值永远是员工。它们的关键是您希望对项目进行排序的元素。按名字排序的示例:
SortedDictionary<string, Emp> empCollection= new SortedDictionary<string, Emp>
{
{"Chris", new Emp { sal = 1000, firstName = "Chris", lastName = "Bakker" }},
{"Bea", new Emp { sal = 1500, firstName = "Bea", lastName = "Smith" }},
// etc.
};
优点和缺点:
- 专业人士:列表排序后,按键查询非常快。
- 缺点:您必须单独添加密钥,感觉就像添加重复数据一样。
- 骗局:你不能将集合放在另一个键上;您必须创建一个新字典。
LINQ
您可以使用 LINQ 创建一个新创建和排序的列表:
List<Emp> empCollection= new List<Emp>
{
new Emp { sal = 1000, firstName = "Chris", lastName = "Bakker" },
new Emp { sal = 1500, firstName = "Bea", lastName = "Smith" },
// etc.
};
List<Emp> sortedEmpCollection = empCollection.OrderBy(e => e.lastName).ToList();
优点和缺点:
- 专业版:语法易于理解。
- 缺点:每次都会创建一个新创建的列表(更多内存管理)。
- 缺点:虽然列表已排序,但如果在某个键上更快,则无法搜索。