String,c#如何同时比较String
提前感谢您的宝贵帮助。这是我的问题,我想将MirePrincipale的前两个字符(一个字符串)与以下字符串“MS”或“VI”或“PF”进行比较。我只能用一个字符串“MS”来完成,其余的就不行了。这是我的密码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”; 例如,您可以创建一个数组,然后检查它是否包含
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次,因此性能也会有所提高。我回到电脑后会更新我的答案