Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.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
String,c#如何同时比较String_C#_.net - Fatal编程技术网

String,c#如何同时比较String

String,c#如何同时比较String,c#,.net,C#,.net,提前感谢您的宝贵帮助。这是我的问题,我想将MirePrincipale的前两个字符(一个字符串)与以下字符串“MS”或“VI”或“PF”进行比较。我只能用一个字符串“MS”来完成,其余的就不行了。这是我的密码 if(MirePrincipal.Substring(0,2)=“MS”| |“VI”| |“PF”) 返回this.MireSecondaire++(“+MirePrincipal+”); 其他的 返回“泥沼原则是注释a MS VI或PF”; 例如,您可以创建一个数组,然后检查它是否包含

提前感谢您的宝贵帮助。这是我的问题,我想将MirePrincipale的前两个字符(一个字符串)与以下字符串“MS”或“VI”或“PF”进行比较。我只能用一个字符串“MS”来完成,其余的就不行了。这是我的密码

if(MirePrincipal.Substring(0,2)=“MS”| |“VI”| |“PF”)
返回this.MireSecondaire++(“+MirePrincipal+”);
其他的
返回“泥沼原则是注释a MS VI或PF”;

例如,您可以创建一个数组,然后检查它是否包含您搜索的内容:

if(new[] { "MS", "VI", "PS" }.Contains(MirePrincipal.Substring(0, 2)))

这不是
|
的工作原理。使用
if
,您必须为每个
=
测试重复
MirePrincipal.Substring(0,2)

您可以使用
开关
来避免:

switch (MirePrincipal.Substring(0, 2)) {
    case "MS":
    case "VI":
    case "PF":
        return this.MireSecondaire + " " + "(" + MirePrincipal + ")";
    default:
        return "Mire Principale is not a MS VI OR PF";
        // No 'e' here −−−−−−−−−−−−−−−^
}


旁注:我建议与使用此保持一致。如果
MirePrincipal
是像
MireSecondaire
is那样的属性(而不是局部变量),则可以始终使用
此属性。
与它们一起使用(我的建议),或者始终不使用
此属性。
与它们一起使用,不要混合和匹配。(如果
MirePrincipal
是一个局部变量,正常的命名准则会说它不应该以大写字母
M
开头,所以它应该是
MirePrincipal

这是一个常见的初学者错误(我也犯了这个错误)

基本上,您的
if
语句在自然英语(或任何语言)中读取正确,但它是不正确的。看,它读作“如果(MirePrincipal的前两个字符等于“MS”或“VI”或“PF”),那么……”,但这是不正确的。您需要告诉计算机“如果(MirePrincipal的前两个字符等于“MS”或MirePrincipal的前两个字符等于“VI”…”

所以你需要这样做:

if(MirePrincipal.Substring(0,2)=“MS”| | MirePrincipal.Substring(0,2)=“VI”||
MirePrincipal.子串(0,2)=“PF”)
{
返回this.MireSecondaire++(“+MirePrincipal+”);
}

或者,像S一样ᴇM指出,你可以使用LINQ并按照他的方式来做,但是对于一个新的程序员(你看起来像[不用担心,我们在某个时候都是新手])我建议使用详细的
if
语句方式C#?Java?PHP?您使用什么语言?这显然与,或无关。请不要标记垃圾邮件。OP还可以将
MirePrincipal.Substring(0,2)
的结果存储到另一个
字符串中(使用较短的名称,如
prefix
)这将使
prefix==“MS”| | prefix==“VI”| | prefix==“PF”
变得更短,甚至更好-readable@Rafalon你完全正确。它不会调用
子字符串(0,2)
3次,因此性能也会有所提高。我回到电脑后会更新我的答案