相关疑难解决方法(0)

将枚举与C#中的字符串相关联

我知道以下是不可能的,因为它必须是一个int

enum GroupTypes
{
    TheGroup = "OEM",
    TheOtherGroup = "CMB"
}
Run Code Online (Sandbox Code Playgroud)

从我的数据库中我得到一个包含不全面代码的字段(OEM和CMB).我想把这个领域变成一个枚举或其他可以理解的东西.因为目标是可读性,所以解决方案应该简洁.
我还有其他选择吗?

.net c#

298
推荐指数
15
解决办法
29万
查看次数

为什么if语句有效但不是switch语句

我正在尝试switch使用字符串的char索引和使用包装器的Enum 创建语句,以从描述中获取所选枚举的值.它几乎允许您将字符串存储到枚举值.

这是我的if发言:

if (msgComingFromFoo[1] == Convert.ToChar(Message.Code.FOO_TRIGGER_SIGNAL.EnumDescriptionToString()))
{
    //foo
}
Run Code Online (Sandbox Code Playgroud)

这是我的switch发言:

switch (msgComingFromFoo[1])
{
    case Convert.ToChar(Message.Code.FOO_TRIGGER_SIGNAL.EnumDescriptionToString()):
        break;
}
Run Code Online (Sandbox Code Playgroud)

为什么接受if声明而不是switch?我尝试将它转换为char,因为我从字符串中选择索引,但不幸的是它没有用.

更新:

这是Message.CodeEnum

public class Message
{
    public enum Code
    {
        [Description("A")]
        FOO_TRIGGER_SIGNAL
    }
}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我需要分配给枚举不枚举值是0.使用说明Message.Code.FOO_TRIGGER_SIGNAL.EnumDescriptionToString()自提包装回报A0


错误:

期望一个恒定的价值

c# if-statement switch-statement

39
推荐指数
4
解决办法
4816
查看次数

根据索引检索Enum的值 - c#

这是我的枚举:

public enum DocumentTypes
    {
        [EnumMember]
        TYPE_1 = 1,
        [EnumMember]
        TYPE_2 = 2,
        [EnumMember]
        TYPE_3 = 3,
        [EnumMember]
        TYPE_4 = 4,
        [EnumMember]
        TYPE_5 = 5,
        [EnumMember]
        TYPE_6 = 6,
        [EnumMember]
        TYPE_7 = 7,
        [EnumMember]
        TYPE_8 = 12

    }
Run Code Online (Sandbox Code Playgroud)

如果我想获得'TYPE_8',如果我只有12,有没有办法获得枚举值?

我试过这个:

((DocumentTypes[])(Enum.GetValues(typeof(DocumentTypes))))[Convert.ToInt32("3")].ToString()
Run Code Online (Sandbox Code Playgroud)

返回'TYPE_4'的值

c# enums

27
推荐指数
3
解决办法
5万
查看次数

枚举设置为字符串并在需要时获取sting值

我不知道该怎么做
我希望代码如下

enum myenum
{
    name1 = "abc",
    name2 = "xyz"
}
Run Code Online (Sandbox Code Playgroud)

并检查它

if (myenum.name1 == variable)
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

感谢名单.

c# string enums

8
推荐指数
2
解决办法
2万
查看次数

如何将变量限制为固定的字符串集?

如果我想将数据库中spicelevel列的值限制为1、2和3,则可以执行以下操作

    private enum SpiceLevel
    {
        Low=1,
        Medium=2,
        Hot=3
    }
Run Code Online (Sandbox Code Playgroud)

然后在代码中,我可以(int)SpiceLevel.Low选择1作为香料级别。

现在,如果我需要在数据库中只接受“ Red Rose”,“ White Rose”和“ Black Rose”作为列的值,该怎么办?有什么合适的方法来解决这个问题?

我正在考虑将它们存储在配置文件或常量中,但是它们都不像枚举那样优雅。有任何想法吗?

更新:

答案在这里为我工作

c#

5
推荐指数
1
解决办法
4354
查看次数

标签 统计

c# ×5

enums ×2

.net ×1

if-statement ×1

string ×1

switch-statement ×1