如何将用户定义的数据类型转换为hashset c#

如何将用户定义的数据类型转换为hashset c#,c#,hashset,C#,Hashset,我有用户定义的类型项,它继承了IList,ICollection,IEnumerable。如何将此类型转换为HashSet。我在使用下面的代码片段,有没有有效的方法 public static class Extensions { public static bool AddRange<T>(this HashSet<T> @this, IEnumerable<T> items) { bool allAdded = true;

我有用户定义的类型
,它继承了
IList
ICollection
IEnumerable
。如何将此类型转换为
HashSet
。我在使用下面的代码片段,有没有有效的方法

public static class Extensions
{
    public static bool AddRange<T>(this HashSet<T> @this, IEnumerable<T> items)
    {
        bool allAdded = true;
        foreach (T item in items)
        {
            added &= @this.Add(item);
        }
        return allAdded;
    }
}
公共静态类扩展
{
公共静态bool AddRange(此HashSet@this,IEnumerable items)
{
bool-allAdded=true;
foreach(项目中的T项目)
{
添加&=@this.Add(项目);
}
回报率下降;
}
}
A
HashSet
有一个构造函数,它接受一个
IEnumerable
并从集合中实例化该HashSet。你可以简单地称之为

如果要将自定义类型中的项加载到现有哈希集中,可能需要使用哈希集的方法,该方法:

修改当前HashSet对象以包含其自身、指定集合或两者中存在的所有元素

但是,这两个选项不会给出一个结果,指定是否有任何项没有通过转换。不过,您可以稍后通过调用HashSet的其他方法之一(如
IsSupersetOf
)或简单地比较计数来完成