如何解决将文本与大量 If/else 进行比较
> string number207 = FindTextBetweenWithout(fileTTT,"\n207 "," 20");
> string number208 = FindTextBetweenWithout(fileTTT,"\n208 "," 20");
> string number209 = FindTextBetweenWithout(fileTTT,"\n209 "," 20");
> string number219 = FindTextBetweenWithout(fileTTT,"\n219 "," 20");
>207
>208
>209
>1402
>132
这个数字用这种方法读取
var listChrt = File.ReadAllText(textBox2.Text);
所以在我尝试比较这些数字之后
string compare()
{
if (listChrt.Contains("207"))
{
return number207;
}
if (listChrt.Contains("208"))
{
return number208;
}
if (listChrt.Contains("1402"))
{
return number1402;
}
return " ";
}
我尝试将其传递到 TextBox
richTextBox1.Text = (
dss()
);
但只得到第一个返回行,即 number207。
因为我不明白 if else 语句在它发现为真时结束,但我需要一些东西来遍历我的所有文本文件并找到与我现有变量(字符串编号 207,208 等)的比较
解决方法
当您的代码调用 compare()
时,它会检查列表是否包含“207”。如果是,则返回该值;方法到此为止。
如果您真的想这样做,您可以在该方法的作用域之上创建布尔值,以检查是否已找到该值。如果有,您可以将其转到方法的下一部分。为此,您需要使用 Boolean logical operators;检查 listChrt
是否包含一个值并且该值已被找到。
不过,这段代码已经很乱了。如果您将要比较的值作为 arguments 传入,您的代码会更简单一些。像这样:
string compare(string baseValue,string valueToCompareAgainst)
{
if (baseValue.Contains(valueToCompareAgainst)
{
return valueToCompareAgainst;
}
else
{
return " ";
}
}
然后您可以多次调用该方法,多次提供 baseValue
字符串以及不同的值。或者,更好的方法是将所有要比较的值放在 string[]
数组或 List<string>
中并对其进行迭代。
老实说,我不确定你为什么要写这个,因为你不清楚,但你去吧。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。