【发布时间】:2021-07-19 17:03:35
【问题描述】:
我怀疑这是否可行,但我还是会问,因为它会使我的代码更具可读性。
我必须为各种子字符串控制一个大字符串,并根据找到的子字符串以不同的方式对其进行详细说明。
目前我有一个嵌套的 if like
position = mystring.IndexOf("my substring")
if (position>0)
{
position = mystring.IndexOf("somestring", position);
[...]
}
else
{
position = mystring.IndexOf("my substring2")
if (position>0)
{
position = mystring.IndexOf("somestring2", position);
[...]
}
else {...}
}
我能想到的唯一其他方法是双重转换 IndexOf 函数:
if (mystring.IndexOf("my substring")>0)
{
position = mystring.IndexOf("somestring", mystring.IndexOf("my substring"));
[...]
}
else if (mystring.IndexOf(mysubstring2)>0)
{
position = mystring.IndexOf("somestring2", mystring.IndexOf("my substring2"));
[...]
}
else {...}
有没有办法检查IndexOf() 结果并将其分配给if() 语句中的变量?
某事就行了
if ((position = mystring.IndexOf("my substring")) AndAlso position > 0) { ... }
或者有什么提示可以更好地处理这样一段代码?
【问题讨论】:
-
if ((position = mystring.IndexOf("my substring")) >= 0) {...} -
你使用
if (position>0)但也许你应该使用if (position>=0),否则你排除了搜索字符串在开头的情况。 -
虽然我怀疑这些是占位符,但请注意,如果找不到“my substring”,那么也不会找到“my substring2”。
-
@TimSchmelter 谢谢,我这样做是因为我知道它永远不会是第一个字符。
-
@Default 是的,只是占位符
标签: c# if-statement variable-assignment