尝试枚举枚举时出错

时间:2016-11-09 12:57:54

标签: c# asp.net-mvc enums

我有以下型号:

public class FormModel
{
  public Guid {get; set;}
  public Sections Sections {get; set}
}

[Flags]
    public enum Sections
    {
        Test1= 0,
        Test2= 1,
        Test3= 2,
        Test4= 4,
        Test5= 8,
        Test6= 16
    }

我使用的服务返回带有数据的模型:

var form = await _formService.GetById(formAnswer.FormId);

现在Sections属性包含:Test1 | Test2

我试图像这样枚举这个属性:

 var list = new List<string>();
 foreach(var item in Enum.GetValues(typeof(form.Sections)))
 {
     //Add the form.Sections into the list.
 }

但我收到错误:

  

&#39;形式&#39;是一个变量但是像类型一样使用

如何枚举模型的Sections属性并将值添加到列表中?

1 个答案:

答案 0 :(得分:1)

你有一个错字。您使用了表单实例,而不是您想要的枚举类型。试试:

foreach (var item in Enum.GetValues(typeof(Sections)))
{
    if (((int)form.Sections & (int)item) != 0)
    {
         // add to list
    }
}