我想在内存中保存大约 1000 条左右的客户记录,这些记录将按年龄排序。我将使用年龄作为我的搜索条件来查找客户,或者可能必须遍历列表以按年龄升序获取所有客户。
我的一个想法是创建一个大小为 110 的哈希表的数组实现(例如,以前可能从 0 年到 110 年不等)。每个哈希表插槽都对应年龄/年,然后我可以使用单独的链接来保留该年龄所有客户的链接列表。
尽管上述方法可以解决我的目的,但我不确定这是否是满足我需要的最佳方式。
涉及的技术将与 C# 和 Windows 窗体有关。
我想在内存中保存大约 1000 条左右的客户记录,这些记录将按年龄排序。我将使用年龄作为我的搜索条件来查找客户,或者可能必须遍历列表以按年龄升序获取所有客户。
我的一个想法是创建一个大小为 110 的哈希表的数组实现(例如,以前可能从 0 年到 110 年不等)。每个哈希表插槽都对应年龄/年,然后我可以使用单独的链接来保留该年龄所有客户的链接列表。
尽管上述方法可以解决我的目的,但我不确定这是否是满足我需要的最佳方式。
涉及的技术将与 C# 和 Windows 窗体有关。
您可以使用hashset
. 它是 C# 中的一种集合,速度非常快。
我更喜欢Generic List<T>
为此目的使用。并且可以随心所欲地操纵LINQ
。
创建一个具有必要属性(如 first_name 和 last_name 等)的类。然后创建一个字典,其中字典的键是唯一的,字典的值是该类的实例。
public class User
{
public string firstName{get;set;}
public string lastName{get;set;}
}
你的字典:
Dictionary<int, User> UserList = new Dictionary<int, User>();
使用字典,您可以使用 linq 从中获取查询或通过 id 查找特定用户。
如果您只需要存储 2 个值,那么您可以使用 Dictionary,否则您可以创建实体并使用它的 List。
根据您使用数据的方式,SortedList 可能比 HashSet 更好。