如何准备普通班级的收藏

时间:2017-01-26 15:26:55

标签: c# .net

我刚读完收藏品之后。关于该论坛的许多讨论人们以不同的方式反映答案。然而,许多意见是不同的,并没有足够明确的输出给我。因此,我想抓住机会,请您提供我准备的四个场景的示例 - 如何在特定情况下准备您的收藏品。主要目标是了解在哪种情况下更好地为集合创建单独的类,并且在哪种情况下将它保持在同一类中而不创建仅用于集合的单独类是很好的。请注意,方案是由我制作的,所以如果有其他方案可以让您欢迎出席。我相信这个话题会对很多社区提出很多要求很有帮助。

假设我们有以下课程用于我们的收藏:

class Player
{
    Private string Name;
    Private string Age;
    Private EnumType PlayPosition;  //e.g center, back etc.
}

现在考虑我准备的情况

第一种情况:

只是收集具有基本功能的玩家,比如循环播放,添加/删除/全部获取

第二种情况:

就像在1st scenarion中一样,另外在添加方法中检查添加之前是否已经不存在此类播放器名称

第三种情况:

收集所有玩家,如第二种情况,但也有可能按姓名,年龄或两者排序并比较

第4种情况:

要同时拥有玩家列表和玩家字典 - 在某些情况下,某些时候我只需要一个列表,有时候需要一本字典

1 个答案:

答案 0 :(得分:2)

我相信你正在寻找HashSet,给出:

public static HashSet<Player> Players { get; set; }

案例1:

Players.Add(new Player { Age = 98 });

案例2:

您可以覆盖EqualsGetHashCode以检查Name是否已存在,然后Add会为您处理此问题。

案例3(据我所知):

var orderedPlayers = Players.OrderBy(x => x.Name);

案例4(我未定):

var dictionaryPlayers = Players.ToDictionary(x => x.Age);
相关问题