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

时间:2015-08-19 17:48:59

标签: c#

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

int Y = 0;
int N = 0;
int U = 0;

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

string test = dr["ATTEND_CDE"].ToString();
int test2 = int.Parse(dr["COUNT"].ToString());

是否有更好的方法将相应的整数分配给除以下内容之外的计数:

if (test == "Y")
{
    Y = test2;
}
else if (test == "N")
{
    N = test2;
}
else if (test == "U")
{
    U = test2;
}

3 个答案:

答案 0 :(得分:8)

您真正拥有的是string(“Y”,“N”或“U”)与int之间的映射。

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

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

//usage
myValues[stringFromDatabase] = valueFromDatabase;

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

答案 1 :(得分:2)

您可以在字符串上使用switch语句。所以对于上面的例子,

switch(test)
{
    case "Y": Y = test2; break;
    case "N": N = test2; break;
    case "U": U = test2; break;
}

答案 2 :(得分:1)

如果您将YNU存储为课程中的属性,那么您可以使用

如果您使用c#6.0,那么您至少可以执行类似

的操作
if(test.equals(nameof(y)))
{
     //...
}