相关疑难解决方法(0)

如何从ASP.NET MVC属性中获取枚举值?

在我的ViewModel中,我有一个属性,可以为我的表单的下拉菜单创建一个枚举.

public enum Colors
    {
    [Description("Dark Red")]
    DarkRed = 0,
    [Description("Orange")]
    Orange = 1,
    [Description("Blue")]
    Blue = 2
    }
Run Code Online (Sandbox Code Playgroud)

我的助手回归:

<select id="ddlColor">
    <option value="DarkRed">Dark Red</option>
    <option value="Orange">Orange</option>
    <option value="Blue">Blue</option>
</select>
Run Code Online (Sandbox Code Playgroud)

但是,当我在模型中调用属性时,我只获取名称而不是值,例如DarkRed而不是0.

model.Selections = InsertForm(model.Color);
Run Code Online (Sandbox Code Playgroud)

如何在我的模型引用中转换它,以便从枚举中获取

c# asp.net-mvc enums

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

显示枚举的int值

我有一个propertygrid,需要在propertygrid内创建一个组合框并显示int值(1到9),我发现使用enum是最简单的方法,但是enum无法显示int值,即使我尝试将其强制转换为int ,但我不知道如何返回所有值。还有其他方法吗?提前致谢。下面是我的代码。

public class StepMode
    {
        private TotalSteps totalSteps;

        public TotalSteps totalsteps
        {
            get { return totalSteps; }
            set { value = totalSteps; }
        }
        public enum TotalSteps
        {
            First = 1,
            Second = 2,
            Three = 3,
            Four = 4,
            Five = 5,
            Six = 6,
            Seven = 7,
            Eight = 8,
            Nine = 9
        }
    }
Run Code Online (Sandbox Code Playgroud)

c# wpf propertygrid enums

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

如何通过FastMember自动将枚举转换为int?

我正在使用FastMember转换List<T>为a Datatable.某些类包含枚举,这在将数据表作为TVP传递给存储过程时会导致问题.

public class MyObject
{
    public int Id {get; set;}
    public SomeEnum EnumHere {get; set;}
}

var dt = new DataTable();
using (var reader = ObjectReader.Create(myObjectsList))
{
    dt.Load(reader);
}

db.Execute<ResultObject>("insert_objects", new { dt }, commandType: CommandType.StoredProcedure);
Run Code Online (Sandbox Code Playgroud)

FastMember转换列表中,但是对于枚举列具有DataTypeSomeEnum.将数据表作为TVP传递时,会引发以下异常:

抛出异常:Dapper.dll中的"System.ArgumentException"

附加信息:不支持"SomeEnum"列的类型.类型是'SomeEnum'

有没有办法强制FastMember将枚举转换为int?

c# dapper fastmember

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

如何将枚举值保存到数据库?

例如:

namespace PizzaSoftware.Data
{
    public class User
    {
        public string Username { get; set; }
        public string Password { get; set; }
        public Permission PermissionType { get; set; }
    }

    public enum Permission
    {
        Basic,
        Administrator
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我使用Entity-Framework的CodeFirst,我该如何保存这个值?

这适用于Windows窗体,桌面应用程序.

谢谢!

c# code-first entity-framework-4

3
推荐指数
1
解决办法
3584
查看次数

如何将字符串转换为枚举值为整数?

可能重复:
如何在C#中将字符串转换为枚举?
枚举返回int值

我已声明一个枚举: -

public enum Car
        {
            SELECT = 0,
            AUDI = 1,
            NISSAN = 2,
            HONDA = 3,
            LINCOLN = 4
        } 
Run Code Online (Sandbox Code Playgroud)

现在我需要enum的int值匹配: -

private int GetCarType(string CarName)
        {
            foreach(var item in Enum.GetNames(typeof(Car))
            {
                if (item.ToLower().Equals(CarName.ToLower()))
                    //return int value of Enum of matched item; ???????
            }
Run Code Online (Sandbox Code Playgroud)

预期结果: -

int i = GetCarType(CarName); //suppose CarName is AUDI, it should return 1;
Console.write(i);

Result :- 1
Run Code Online (Sandbox Code Playgroud)

我如何获得枚举的价值?更好的编码实践.

c# enums

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

获取Enum []的int值

我有一个方法,如:

public void DoIt(params MyEnum[] channels)
{

}
Run Code Online (Sandbox Code Playgroud)

有没有办法在参数中获取枚举的int值?

我试过var myInts = channels.Select(x => x.Value)但没有运气

.net c# enums

2
推荐指数
4
解决办法
184
查看次数

为什么这些枚举很糟糕

在Visual Studio中 - 好吧,我正在使用Visual Studio 11 Beta,所以这可能是问题 - 我想我正在编写枚举.但是这虽然有效:

在此输入图像描述

这不起作用:

在此输入图像描述

怎么了?

.net c# enums visual-studio

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

VB和C#之间的枚举行为

我搜索并尝试过很多东西,但我并不是很开心.

在将旧项目从VB.Net转换为C#时,我发现两种语言之间的行为非常不同,如果不处理则会破坏C#中的逻辑.

考虑一个枚举如:

public enum TestEnum
{
    Val1 = 1,
    Val2 = 2
}
Run Code Online (Sandbox Code Playgroud)

我在VB.Net中有这个代码

// Will contain 1
txthMyHiddenField.Value = TestEnum1.Val1 
Run Code Online (Sandbox Code Playgroud)

并且

// Will contain ~/Something?var=1
Dim Url As String = "~/Something?var=" & TestEnum1.Val1
Run Code Online (Sandbox Code Playgroud)

在C#中,这将有第一个案例Val1和第二个案例"〜/ Something?var = Val1"

到目前为止,我可以提出的解决方案,无需重新设计大量代码就可以到处去做类似的事情:

= myEnum.ToString("d");

// Or

= ((int)myEnum).ToString();

// Or an extension.
Run Code Online (Sandbox Code Playgroud)

我还考虑创建一个枚举"类",但后来我必须更改所有switch语句,这是一个更糟糕的解决方案.

我错过了什么吗?有更干净的方式吗?

.net c# enums

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

具有基础类型的枚举.无意中返回字符串表示

我有以下枚举:

 public enum BikeType : byte
  {
    Road = 0,
    Mountain = 1
  };
Run Code Online (Sandbox Code Playgroud)

当我尝试将它传递给我时,我检索字节的'字符串'表示,而不是数字值:

string str = string.Format("Road bike has a byte value of {0}", BikeType.Road);

"Road bike has a byte value of Road"
Run Code Online (Sandbox Code Playgroud)

我想要字节值(0).我究竟做错了什么?

谢谢

c# enums

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

获取枚举char值

我有一个枚举:

 public enum SensorType
    {

        Normal ='N',

        Lunch ='C',

        ALL
    }
Run Code Online (Sandbox Code Playgroud)

在我的功能:

private void GetData(SensorType type){

    var charValue = type.ToString(); // here I want to get the char value, not the string.
}
Run Code Online (Sandbox Code Playgroud)

我想得到"N",或"C"等任何线索?

谢谢

c# enums

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

另一个 enum 与 int

我需要命名空间范围的内容。所以我可以选择使用枚举,例如:

public enum Token
{
    INFORMATIONAL,
    WARNING,
    ABORT,
    FATAL
};
Run Code Online (Sandbox Code Playgroud)

但缺点是,例如在 WPF 中,我需要时不时地将它们转换为 int。

所以我想,为什么不呢

public static class Token 
{
    public const int
    INFORMATIONAL = 0,
    WARNING =1,
    ABORT = 2,
    FATAL = 3;
};
Run Code Online (Sandbox Code Playgroud)

在源代码中,它们看起来相同并且我没有转换问题。那么使用枚举的原因到底是什么?我显然错过了一些东西。枚举的原因是什么?

c# enums

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

获取枚举值

我被片段代码困住有一个对象,其中一个字段返回一个枚举(getter)字段是在从数据库读取后由函数设置的.例如

Enum fiscalperiond
{
    Num1 = 12;
    Num2 = 13;
}

Class A
{

    Public Fiscalperiod
    {
        NumberOfFiscalPeriod {get;set;}
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我想这样做我该怎么做

A a = new A();

int k = a.NumberOfFiscalPeriod;
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc

0
推荐指数
1
解决办法
108
查看次数

获得枚举值

可能重复:
枚举返回int值

我想算数"Stack","Overflow"而且"Stackoverflow".因此我使用枚举.

enum Status : int
{
     Stack = 1,
     Overflow = 2,
     StackOverflow = 3
}
Run Code Online (Sandbox Code Playgroud)

但是当我想获得Stack的价值时,我得到了"Stack".

int status = 0;
status = Status.Stack; //I want to assign 1 to status but Status.Stack returns "Stack"
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

c#

-2
推荐指数
1
解决办法
217
查看次数