根据c#中的字符串值为某个整数赋值

Bri*_*ack 3 c#

假设我有3个整数都声明为

int Y = 0;
int N = 0;
int U = 0;
Run Code Online (Sandbox Code Playgroud)

从那里我从存储过程中获取2个值(一个字符串和一个整数).
该字符串返回Y,N,U
整数返回参加人数.

string test = dr["ATTEND_CDE"].ToString();
int test2 = int.Parse(dr["COUNT"].ToString());
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来分配相应的整数除以下计数:

if (test == "Y")
{
    Y = test2;
}
else if (test == "N")
{
    N = test2;
}
else if (test == "U")
{
    U = test2;
}
Run Code Online (Sandbox Code Playgroud)

Bra*_*NET 8

你真正拥有的是a string("Y","N"或"U")和a之间的映射int.

这是一个完美的用例Dictionary(C#6语法如下):

Dictionary<string, int> myValues = new Dictionary<string, int>()
{
    ["Y"] = 0,
    ["N"] = 0,
    ["U"] = 0
};

//usage
myValues[stringFromDatabase] = valueFromDatabase;
Run Code Online (Sandbox Code Playgroud)

请注意,如果数据库中的值是垃圾,这将抛出(这可能是您想要的).

  • 你也可以在C#3中做到这一点:`{"Y",0},` (4认同)