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

时间:2014-06-09 12:07:35

标签: c# hashset

我有用户定义的类型Items,它继承了IListICollectionIEnumerable。如何将此类型转换为HashSet<Items>。我正在使用下面的代码片段,有没有有效的方法呢?

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;
    }
}

1 个答案:

答案 0 :(得分:3)

HashSet<T>有一个构造函数,它接受IEnumerable<T>并从集合中实例化该HashSet。你可以简单地称之为。

如果要将自定义类型中的项目加载到现有 HashSet中,您可能希望使用HashSet的UnionWith方法,其中:

  

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

然而,这两个选项不会做的是给出一个结果,指明是否有任何项目没有通过转换。但是,您可以稍后通过调用HashSet的其他方法(例如IsSupersetOf)或简单地比较Counts来执行此操作。