假设我有一个 storyCharacter 对象列表。每个对象都存储一个 ID#、名称和最喜欢的颜色,如下例所示:
ID# | Name | Favorite Color
21 | Optimus | Blue
29 | Ironhide | Red
34 | Starscream | White
什么是创建键值对以便将其键入 ID# 的最佳方法。
我知道我可以使用字典,但会
dictionary.Add(storyCharacter1.IDnum, storyCharacter1);
做一个好方法吗?我假设这种方式会将 ID 的副本作为键,从而不必要地占用更多内存,因为该信息已经在对象中。当然,我可以不将 IDnum 存储在 storyCharacter 对象中,而只是将其用作键。因为这会创建一个只有名称和颜色的对象,然后与 IDnum 的键相关联,所以感觉就像我正在解耦应该保持在一起的数据。
我也可以使用 List<>,但是我必须要么 foreach 并查看,要么使用 LINQ。
那么,有没有办法存储(某种)对象列表,并将该对象的一个元素标识为键?如果没有,有什么替代方法可以做类似的事情,它们是什么权衡?