将字符串与其他两个字符串进行比较
本文关键字:字符串 两个 比较 其他 | 更新日期: 2023-09-27 18:16:08
所以我有这个代码部分:
private int checkErrors() {
int error = 0;
if (!(nether.Text.Equals("true"))) { error += 1; }
if (!(nether.Text.Equals("false"))) { error += 1; }
if (!(fly.Text.Equals("true"))) { error += 1; }
if (!(fly.Text.Equals("false"))) { error += 1; }
if (!(achivments.Text.Equals("true"))) { error += 1; }
if (!(achivments.Text.Equals("false"))) { error += 1; }
if (!(whitelist.Text.Equals("true"))) { error += 1; }
if (!(whitelist.Text.Equals("false"))) { error += 1; }
if (!(pvp.Text.Equals("true"))) { error += 1; }
if (!(pvp.Text.Equals("false"))) { error += 1; }
if (!(commandBlock.Text.Equals("true"))) { error += 1; }
if (!(commandBlock.Text.Equals("false"))) { error += 1; }
if (!(spawnMonster.Text.Equals("true"))) { error += 1; }
if (!(spawnMonster.Text.Equals("false")) { error += 1; }
return error;
}
但无论如何,它都会得到'error = 7'
,因为当一个陈述为真时,另一个陈述为假所以我的问题是:
有没有办法将两个字符串与第三个字符串进行比较?
另一个例子:我有字符串userInput
,我想,如果userInput
不等于"a"
或"b"
执行error += 1;
!
我怀疑你是在试图找到它不是"true" 和它不是"false"的情况。比如:
if (spawnMonster.Text != "true" && spawnMonster.Text != "false")
{
error++;
}
或者,表示一次条件,并将其应用于所有字符串:
var strings = new[] { nether.Text, fly.Text, achivments.Text, whitelist.Text
pvp.Text, commandBlock.Text, spawnMonster.Text };
return strings.Count(t => t != "true" && t != "false");
只有两个子句:
if (!nether.Text.Equals("true") && !nether.Text.Equals("false")) { error += 1; }
您可以使用的另一种方法是创建一个接受两个参数的函数。一个参数将是userInput,另一个参数将是userInput不应该是的值的数组。它将返回1或0。
的例子:
public int isBadValue(string userInput, string[] goodValues){
if(Array.IndexOf(userInput) > -1){
return 0;
}
return 1;
}
在你的代码中你可以这样做:
string[] goodValues = {"a", "b"};
error += isBadValue("s", goodValues);
您可以轻松地添加更多的好值,函数将能够处理它。不确定是否良好的值改变基于输入字段,这就是为什么我没有包括它在isBadValue函数