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

前端之家收集整理的这篇文章主要介绍了c# – Linq是否包含()检查HashSet?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有时一个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方法.

猜你在找的C#相关文章