Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c语言中的VB指令等价物#_C#_Vb.net - Fatal编程技术网

C# c语言中的VB指令等价物#

C# c语言中的VB指令等价物#,c#,vb.net,C#,Vb.net,我不确定为什么会得到0的结果,这是a 我在VB中有 Dim searched As String = "<results>" & vbCrLf & "<field name=\""FID\""/>" & vbCrLf & "<field name=\""StartFID\""/>" & vbCrLf & "<field name=\""Vertex1\""/>" & vbCrLf &

我不确定为什么会得到
0
的结果,这是
a

我在VB中有

Dim searched As String = "<results>" & vbCrLf & "<field name=\""FID\""/>" & vbCrLf & "<field name=\""StartFID\""/>" & vbCrLf & "<field name=\""Vertex1\""/>" & vbCrLf & "<field name=\""Vertex2\""/>" & vbCrLf & "<field name=\""Slope\""/>" & vbCrLf & ""

Dim sought As String = "<rs FID=\""87\"" StartFID=\""87\"" Vertex1=\""29\"" Vertex2=\""30\"" Slope=\""-1\""/>"

Dim a As Integer = InStr(searched, sought)

String.IndexOf
应该可以工作,但如果您确实想使用InStr,您仍然可以这样做。只需在文件顶部添加对Microsoft.VisualBasic.dll的引用和“using Microsoft.VisualBasic;”,您就可以使用
Strings.InStr

Strings.InStr(searched,sequed)
String.IndexOf
应该可以工作,但如果您确实想使用InStr,您仍然可以这样做。只需在文件顶部添加对Microsoft.VisualBasic.dll的引用和“using Microsoft.VisualBasic;”,您就可以使用
Strings.InStr

Strings.InStr(searched,sequed)
你可以使用
searched.Contains(sequed)
你可以使用
searched.Contains(sequed)
C中的字符串是零索引的。如果
a.IndexOf(b)
返回
0
,则字符串
b
存在于
a
位置
0

如果搜索的字符串不在输入中,
IndexOf()
返回
-1

C#中的字符串为零索引。如果
a.IndexOf(b)
返回
0
,则字符串
b
存在于
a
位置
0


如果搜索的字符串不在输入中,
IndexOf()
返回
-1

这三种方法的用途不同,并不相同。这就是为什么他们有不同的名字

int a = String.IndexOf(searched, sought);
这是您应该使用的方法,并且正是出于此目的。 或者,您可以使用
string.Contains()

比较两个指定的字符串对象,忽略或接受它们的大小写,并返回一个整数,该整数指示它们在排序顺序中的相对位置

bool a = String.Equals(searched, sought);

确定两个字符串的相等性。

这三种方法用于不同的目的,并不相同。这就是为什么他们有不同的名字

int a = String.IndexOf(searched, sought);
这是您应该使用的方法,并且正是出于此目的。 或者,您可以使用
string.Contains()

比较两个指定的字符串对象,忽略或接受它们的大小写,并返回一个整数,该整数指示它们在排序顺序中的相对位置

bool a = String.Equals(searched, sought);

确定两个字符串的相等。

InStr
IndexOf
的行为之间的一个区别是
InStr
在未找到字符串时返回零,而
IndexOf
返回-1。使用
IndexOf
是在C#中搜索子字符串的惯用方法,也是在您的情况下使用的正确方法

如果要直接使用
InStr
,可以通过引用
Microsoft.VisualBasic
程序集,然后调用
InStr
作为
Strings
类的静态方法:

int a = Strings.InStr(searched, sought);

InStr
IndexOf
行为之间的一个区别是
InStr
在未找到字符串时返回零,而
IndexOf
返回-1。使用
IndexOf
是在C#中搜索子字符串的惯用方法,也是在您的情况下使用的正确方法

如果要直接使用
InStr
,可以通过引用
Microsoft.VisualBasic
程序集,然后调用
InStr
作为
Strings
类的静态方法:

int a = Strings.InStr(searched, sought);

工作。。。谢谢Carsten

int b = searched.IndexOf(sought);
b=0


我明白我现在的问题了。。。当我将字符串移动到计算字符串的变量时,我得到了错误。我不确定我是否正确使用了仪器。

有效。。。谢谢Carsten

int b = searched.IndexOf(sought);
b=0

我明白我现在的问题了。。。当我将字符串移动到计算字符串的变量时,我得到了错误。我不确定是否正确使用InStr。

只需使用IndexOf()+1返回0而不是-1即可

int a = searched.IndexOf(sought)+1;
它对我有用,只需单击“帮助”

即可使用IndexOf()+1返回0而不是-1

int a = searched.IndexOf(sought)+1;

这对我来说很有用,希望它能提供帮助。
searched.IndexOf(searched)
?卡斯滕是对的,
IndexOf
应该做同样的事情,或多或少。试试Strings.InStr()。链接在引用中添加Microsoft.VisualBasic dll。否则IndexOf就是好办法了谢谢Carsten。我想我试过了。。显然不是。。再次感谢。你的VB字符串中的
\“
怎么了?这样的转义序列在VB中无效。你的字符串可能不包含你认为它们包含的内容。搜索的
有什么问题。IndexOf(sequed)
?卡斯滕是对的,
IndexOf
应该或多或少做同样的事情。试试strings.InStr().Link。在引用中添加Microsoft.VisualBasic dll。否则IndexOf就是最好的选择。谢谢Carsten。我想我已经试过了。显然不行。再次感谢。VB字符串中的
\“
是怎么回事?这样的转义序列在VB中是无效的。您的字符串可能不包含您认为它们包含的内容。感谢您的回复,我认为如果在我的part@Deke我想到从C代码中使用InStr的唯一原因是模拟VB.NET的特定输出。特别是,使用返回值作为原始字符串的索引是不正确的。我想使用IndexOfThanks作为响应,我还认为InStr和IndexOf都返回0,如果在我的part@Deke我想到从C代码中使用InStr的唯一原因是模拟VB.NET的特定输出。特别是,使用返回值作为原始字符串的索引是不正确的。我想用IndexOf