首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >仅用于字典值的IEnumerable实现

仅用于字典值的IEnumerable实现
EN

Stack Overflow用户
提问于 2016-11-12 16:09:33
回答 2查看 1.3K关注 0票数 0

我有一个类,比如Player,它有一个名称和一些属性:

代码语言:javascript
运行
复制
public class Players
{
    public string PlayerName { get; set; }
    public IList<Goal> Goals { get; set; }
    ...
}

我想创建一个自定义集合类PlayerCollection,但是使用字典而不是列表来加快搜索速度。所以:

代码语言:javascript
运行
复制
public class PlayersCollection
{
    private readonly IDIctionary<string, Player> _players;
    ....

使用以播放器名为键的字典将使我的程序的其余部分变得更容易。现在我想实现IEnumerable<Player>,以便迭代player类,但是我不能使用字典的枚举器,因为它是在KeyValuePair<string, Player>上实现的。

我怎么能这么做?

EN

Stack Overflow用户

发布于 2016-11-12 16:16:35

试试这个:

代码语言:javascript
运行
复制
public class PlayersCollection : IEnumerable<Player>
{
    private readonly IDictionary<string, Player> _players;

    public IEnumerator<Player> GetEnumerator()
    {
        return _players.Select(player => player.Value).GetEnumerator();
    }
}

如果您正在寻找一个具有快速搜索功能的集合,我建议您阅读HashSet,它是框架的一部分。

票数 3
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40564815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档