C# 条件变量值
我会尽量使这件事简单快捷。。我以前从未尝试过,所以我有点迷路了。。我想做的是得到一个变量字符串(op20),它的值基于满足的条件。。也许有一个更简单的方法来实现这一点。。。例如:C# 条件变量值,c#,variables,C#,Variables,我会尽量使这件事简单快捷。。我以前从未尝试过,所以我有点迷路了。。我想做的是得到一个变量字符串(op20),它的值基于满足的条件。。也许有一个更简单的方法来实现这一点。。。例如: string op20A = "5"; string op20D = "19"; string op20C = "6"; string op20E = "14"; string op20J = "15"; string op20Y = "21"; string op20raw = "R288319" if (op2
string op20A = "5";
string op20D = "19";
string op20C = "6";
string op20E = "14";
string op20J = "15";
string op20Y = "21";
string op20raw = "R288319"
if (op20raw == "R288319") string op20 = op20A;
if (op20raw == "R288320") string op20 = op20D;
if (op20raw == "R288321") string op20 = op20C;
etc etc
我建议使用
开关
构造。请参见此处以获取参考:
最好设置一个默认值
案例,以防您正在测试的变量被分配了一些您没有明确设置的内容
string op20A = "5";
string op20D = "19";
string op20C = "6";
string op20E = "14";
string op20J = "15";
string op20Y = "21";
string op20raw = "R288319"
// declare the string first
string op20;
// now assign it using a 'switch' statement
switch (op20raw)
{
case "R288319":
op20 = op20A;
break;
case "R288320":
op20 = op20D;
break;
case "R288321":
op20 = op20C;
break;
default:
op20 = "something else";
break;
}
最后,您的代码将无法编译,因为您试图声明op20三次:只需声明一次,然后根据需要分配它
希望有帮助 我建议使用
开关
构造。请参见此处以获取参考:
最好设置一个默认值
案例,以防您正在测试的变量被分配了一些您没有明确设置的内容
string op20A = "5";
string op20D = "19";
string op20C = "6";
string op20E = "14";
string op20J = "15";
string op20Y = "21";
string op20raw = "R288319"
// declare the string first
string op20;
// now assign it using a 'switch' statement
switch (op20raw)
{
case "R288319":
op20 = op20A;
break;
case "R288320":
op20 = op20D;
break;
case "R288321":
op20 = op20C;
break;
default:
op20 = "something else";
break;
}
最后,您的代码将无法编译,因为您试图声明op20三次:只需声明一次,然后根据需要分配它
希望有帮助 我建议你使用字典
这将使您的检索代码更简单。我建议您使用字典
这将使检索代码更简单。因为您是基于单个变量值(op20raw)对代码进行分支,所以可以使用switch语句 例如:
string op20 = String.Empty;
switch(op20raw) {
case "R288319":
op20 = op20A;
break;
case "R288320":
op20 = op20B;
break;
// and so on
}
或者,您可以创建一个字典
,其中键是op20raw变量的可能值,值是op20变量的对应值。
然后,只需从字典中获取适当的值:
string a20 = myDictionary.ContainsKey(op20raw) ? myDictionary[op20raw] : String.Empty;
由于是基于单个变量值(op20raw)对代码进行分支,因此可以使用switch语句 例如:
string op20 = String.Empty;
switch(op20raw) {
case "R288319":
op20 = op20A;
break;
case "R288320":
op20 = op20B;
break;
// and so on
}
或者,您可以创建一个字典
,其中键是op20raw变量的可能值,值是op20变量的对应值。
然后,只需从字典中获取适当的值:
string a20 = myDictionary.ContainsKey(op20raw) ? myDictionary[op20raw] : String.Empty;
您的解决方案在两三种情况下几乎是最佳的 如果有两个或三个以上,我倾向于选择这个:
var map = new Dictionary<string, string>() {
{ "R288319", op20A },
{ "R288320", op20D },
{ "R288321", op20C }
};
string op20 = map[op20raw]; // assuming no erroneous raw strings
var-map=newdictionary(){
{“R288319”,op20A},
{“R288320”,op20D},
{“R288321”,op20C}
};
字符串op20=map[op20raw];//假设没有错误的原始字符串
您的解决方案在两三种情况下几乎是最好的
如果有两个或三个以上,我倾向于选择这个:
var map = new Dictionary<string, string>() {
{ "R288319", op20A },
{ "R288320", op20D },
{ "R288321", op20C }
};
string op20 = map[op20raw]; // assuming no erroneous raw strings
var-map=newdictionary(){
{“R288319”,op20A},
{“R288320”,op20D},
{“R288321”,op20C}
};
字符串op20=map[op20raw];//假设没有错误的原始字符串
您可以使用switch语句:
switch(op20raw)
{
case "R288319":
op20 = op20A;
break;
case "R288320":
op20 = op20D;
break;
etc..
}
开关(op20raw)
{
案例“R288319”:
op20=op20A;
打破
案例“R288320”:
op20=op20D;
打破
等
} 您可以使用switch语句: switch(op20raw) { case "R288319": op20 = op20A; break; case "R288320": op20 = op20D; break; etc.. } 开关(op20raw) { 案例“R288319”: op20=op20A; 打破 案例“R288320”: op20=op20D; 打破 等 }