我有一个类,比如Player,它有一个名称和一些属性:
public class Players
{
public string PlayerName { get; set; }
public IList<Goal> Goals { get; set; }
...
}我想创建一个自定义集合类PlayerCollection,但是使用字典而不是列表来加快搜索速度。所以:
public class PlayersCollection
{
private readonly IDIctionary<string, Player> _players;
....使用以播放器名为键的字典将使我的程序的其余部分变得更容易。现在我想实现IEnumerable<Player>,以便迭代player类,但是我不能使用字典的枚举器,因为它是在KeyValuePair<string, Player>上实现的。
我怎么能这么做?
发布于 2016-11-12 16:16:35
试试这个:
public class PlayersCollection : IEnumerable<Player>
{
private readonly IDictionary<string, Player> _players;
public IEnumerator<Player> GetEnumerator()
{
return _players.Select(player => player.Value).GetEnumerator();
}
}如果您正在寻找一个具有快速搜索功能的集合,我建议您阅读HashSet,它是框架的一部分。
https://stackoverflow.com/questions/40564815
复制相似问题