加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Linq是否包含()检查HashSet?

发布时间:2020-12-15 04:28:37 所属栏目:百科 来源:网络整理
导读:有时一个HashSet通过属性作为IEnumerable来显示. 众所周知,对于enumerable.Count(),代码检查它是否是一个集合,因此它不会枚举整个列表,而是需要一个快捷方式. 是否有类似的检查使用Linq版本的enumerable.Contains(x)和HashSets? 解决方法 从 reference sour
有时一个HashSet通过属性作为IEnumerable来显示.

众所周知,对于enumerable.Count(),代码检查它是否是一个集合,因此它不会枚举整个列表,而是需要一个快捷方式.

是否有类似的检查使用Linq版本的enumerable.Contains(x)和HashSets?

解决方法

从 reference source,是的,虽然不是直接:
public static bool Contains<TSource>(this IEnumerable<TSource> source,TSource value) {
    ICollection<TSource> collection = source as ICollection<TSource>;
    if (collection != null) return collection.Contains(value);
    return Contains<TSource>(source,value,null);
}

如果源枚举实现ICollection<T>(和HashSet<T>),那么它使用集合的Contains方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读