Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 条件变量值_C#_Variables - Fatal编程技术网

C# 条件变量值

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

我会尽量使这件事简单快捷。。我以前从未尝试过,所以我有点迷路了。。我想做的是得到一个变量字符串(op20),它的值基于满足的条件。。也许有一个更简单的方法来实现这一点。。。例如:

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; 打破 等 }