C# 如何从C中的枚举中选择数字和值?

C# 如何从C中的枚举中选择数字和值?,c#,C#,我刚刚更改了代码,现在它将一些数据存储在枚举中,而不是SQL Server表中 以下是枚举: public enum ContentTypes : int { Article = 0, Menu = 1, ContentBlock = 3 } 我正在运行以下代码: var contentTypes = ( from contentType in this._contentTypeService.GetCon

我刚刚更改了代码,现在它将一些数据存储在枚举中,而不是SQL Server表中

以下是枚举:

public enum ContentTypes : int
{
    Article = 0,
    Menu = 1,
    ContentBlock = 3
}
我正在运行以下代码:

        var contentTypes =
          (
              from contentType in this._contentTypeService.GetContentTypes()
              select new
              {
                  id = contentType.ContentTypeId,
                  name = contentType.Name
              }
          );

我如何更改它,使其不从内容服务获取数据,而只是查询enum到contentTypes的数据?

我想您需要的是这个

var contentTypes =
    from value in Enum.GetValues(typeof(ContentTypes)).Cast<int>()
    select new
    {
        id = value,
        name = Enum.GetName(typeof(ContentTypes), value)
    };

pswg可能是对的,但我想你想要什么

以下代码更直接地回答了您的问题:

select new
{
    id = (int)contentType,
    name = contentType.ToString()
}

您可以通过强制转换为int来获取整数id,并通过使用其ToString来获取其名称,该ToString在这里可能是隐式的,也可能不是隐式的

不太确定您在这里要做什么…+1顺便说一句,我认为您不需要将值强制转换为int-GetName接受object@lazyberezovskyEnum.GetValues返回一个数组,不幸的是,你必须对C进行转换才能知道类型值是什么。是的,你说得对。您还可以使用from int valueGetValues返回ContentTypes[]。您应该转换为ContentTypes,而不是int,以获得更清晰的代码。就像Justin Pihony的回答一样