根据c#中的字符串值为某个整数赋值
本文关键字:整数 赋值 字符串 根据 | 更新日期: 2023-09-27 18:08:51
假设我有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;
}
这里真正得到的是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;
请注意,如果来自数据库的值是垃圾,则会抛出(这可能是您想要的)。
可以在字符串上使用switch语句。对于上面的例子,
switch(test)
{
case "Y": Y = test2; break;
case "N": N = test2; break;
case "U": U = test2; break;
}
如果您将Y
, N
, U
作为属性存储在类中,那么您可以使用
- 数据合同(https://msdn.microsoft.com/en-US/library/ms733127%28v=VS.110%29.aspx) 一个ORM框架(与c# 4.0一起使用的最佳ORM)
自动JSON反序列化(使用Newtonsoft(或LINQ到JSON)将JSON反序列化到。net对象)
XML自动反序列化(http://www.jonasjohn.de/snippets/csharp/xmlserializer-example.htm)
如果你使用c# 6.0,那么你至少可以做一些像
if(test.equals(nameof(y)))
{
//...
}