C# 我可以传递哈希集吗<;某些枚举>;作为HashSet<;字节>;?

C# 我可以传递哈希集吗<;某些枚举>;作为HashSet<;字节>;?,c#,enums,hashset,C#,Enums,Hashset,我编写了一个函数,它接受一个HashSet参数。我想传递一个HashSet,其中SomeEnumeration具有底层类型byte。有没有一个简单的方法可以做到这一点 public enum SomeEnumeration : byte { ZERO = 0, ONE, TWO, THREE } public void someFunc( HashSet<byte> aSet ) { ... } static void Main() {

我编写了一个函数,它接受一个
HashSet
参数。我想传递一个
HashSet
,其中
SomeEnumeration
具有底层类型
byte
。有没有一个简单的方法可以做到这一点

public enum SomeEnumeration : byte
{
    ZERO = 0,
    ONE,
    TWO,
    THREE
}

public void someFunc( HashSet<byte> aSet )
{
    ...
}

static void Main()
{
    HashSet<SomeEnumeration> mySet = new HashSet<SomeEnumeration>();

    ...
    someFunc(mySet);
}
public enum SomeEnumeration:byte
{
零=0,
一,,
二,,
三
}
公共void someFunc(HashSet aSet)
{
...
}
静态void Main()
{
HashSet mySet=新HashSet();
...
someFunc(mySet);
}

是,您可以使用
Cast
扩展方法执行此操作:

someFunc(new HashSet<byte>(mySet.Cast<byte>()));
someFunc(新的HashSet(mySet.Cast());

仅当方法参数键入为
IEnumerable
时,此操作才有效。如果该方法实际上要求您传递一个
HashSet
,那么您必须通过执行
newhashset(set.Cast())
来复制该集。感谢您的帮助。我刚刚将函数参数改为
IEnumerable
,而不是
HashSet