初始化Dictionary<SETabs, bool>遇CS0131错误,求正确初始化方法
错误原因及解决方法
错误CS0131的根源是你在初始化Dictionary<SETabs, bool>时使用了错误语法——直接对枚举值赋值,这不符合字典集合初始化器的规则。字典初始化需要以键值对的形式声明元素。
正确的初始化方式
方式一:集合初始化器简洁语法
用[键] = 值的格式在花括号内定义元素:
List<SEWorkflow> result = new List<SEWorkflow>() { new SEWorkflow() { tabNVPair = new Dictionary<SETabs, bool>() { [SETabs.Main] = true, [SETabs.Attachments] = true } } };
方式二:显式调用Add方法
如果更习惯显式方法调用,可使用Add(键, 值)的形式:
List<SEWorkflow> result = new List<SEWorkflow>() { new SEWorkflow() { tabNVPair = new Dictionary<SETabs, bool>() { { SETabs.Main, true }, { SETabs.Attachments, true } } } };
两种写法都能正确初始化字典,解决CS0131错误。
内容的提问来源于stack exchange,提问作者Venkat
相关产品推荐
相关产品推荐

