首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Union vs Union Union in HashSet

Union vs Union Union in HashSet
EN

Stack Overflow用户
提问于 2017-08-28 19:23:45
回答 1查看 20.1K关注 0票数 23

当我组合两个哈希集时,HashSet.UnionHashSet.Unionwith有什么不同?

我尝试这样组合:

代码语言:javascript
复制
HashSet<EngineType> enginesSupportAll = _filePolicyEvaluation.EnginesSupportAll;
        enginesSupportAll = enginesSupportAll != null ? new HashSet<EngineType>(engines.Union(enginesSupportAll)) : enginesSupportAll;

这个例子最好的方法是什么?为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-28 19:30:05

它不是HashSet.Union,而是Enumerable.Union,所以您使用的是一个可以与任何类型的IEnumerable<>一起工作的LINQ扩展方法,而HashSet.UnionWith是一个修改当前实例的真正的HashSet方法。

  • Union返回一个IEnumerable<TSource>
  • UnionWith is void,它会修改当前的HashSet instance
  • maybe

的效率会稍微高一些,因为它可以优化

如果你不想在你的方法中支持任何类型的序列,所以HashSet是固定的,你可以修改它,使用它,否则就使用LINQ扩展。如果您只是为了这个目的而创建HashSet实例,那么这并不重要,我希望LINQ更灵活,并且能够链接我的查询。

票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45917831

复制
相关文章

相似问题

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