gpt4 book ai didi

c# - 分配变量并在 IF 计算中检查它

转载 作者:行者123 更新时间:2023-12-03 08:23:03 26 4
gpt4 key购买 nike

我怀疑这是否可以完成,但无论如何我都会问,因为这会让我的代码更具可读性。

我必须为各种子字符串控制一个大字符串,并根据找到的子字符串以不同的方式详细说明它。

目前我有一个嵌套的 if

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) { ... }

或者有什么建议可以更好地处理这样的一段代码吗?

最佳答案

是的,你可以做到,就像这样:

var myString = "Hello World";
int pos;

if ((pos = myString.IndexOf("World")) >= 0)
{
Console.WriteLine(pos); // prints 6
}
else if ((pos = myString.IndexOf("Some Other Substring")) >= 0)
{
// Do whatever
}

请注意,我使用 myString.IndexOf(...) >= 0 作为子字符串的索引可以为 0(即从第一个字符开始),并且 如果未找到,IndexOf 方法将返回 -1

但你也可以只使用 string.Contains像这样:

var myString = "Hello World";

if (myString.Contains("World"))
{
// Do whatever
}
else if (myString.Contains("Some Other Substring"))
{
// Do whatever
}

如果您没有明确需要子字符串的位置,则更好,但如果需要,请使用第一个

关于c# - 分配变量并在 IF 计算中检查它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67264668/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com