gpt4 book ai didi

c# - 使用初始化列表从数组初始化列表

转载 作者:太空宇宙 更新时间:2023-11-03 17:45:50 28 4
gpt4 key购买 nike

基类有readonly 类型的字段List<SomeEnum>派生类将对其进行初始化。现在,有一个派生类,我想在其中添加 SomeEnum 的所有值。一种方法是将所有枚举值都键入,但是枚举有点大,那么还有其他方法吗?

public class Base
{
private readonly List<SomeEnum> _list;

protected Base(List<SomeEnum> list)
{
_list = list;
}
}

public class Derived : Base
{
public Derived() : base(new List<SomeEnum>() { Enum.GetValues(typeof(SomeEnum)) }
{
}
}

(上面的代码无法编译,我相信初始化器不接受数组。)

最佳答案

这是因为您必须将 Enum.GetValues 的结果转换为适当的 IEnumerable 类型。看这里:

using System.Linq;


public class Derived : Base
{
public Derived()
: base(new List<SomeEnum>(Enum.GetValues(typeof(SomeEnum)).OfType<SomeEnum>()))
{
}
}

关于c# - 使用初始化列表从数组初始化列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4623360/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com