Conversion from VB6 to C# string manipulation
VB6代码如下:
1
|
record = Collection & Right(TableName, Len(TableName) – (InStr(1, TableName,"_<idNo>_") + 7))
|
我尝试在将其更改为 c# 时保留逻辑,但似乎不起作用。
1
2 |
collection = 111111
Record = collection + tablename.Substring(tablename.Length – tablename.Length – tablename.IndexOf("_<idNo>_", 1) + 7); |
(VB6)InStr 是 (C#)indexOf
请参阅:http://bytes.com/topic/net/answers/108174-c-equilivant-instr
(VB6)
请参阅:http://social.msdn.microsoft.com/Forums/vstudio/en-US/9598905f-912f-4ea7-b954-eb2f48328ce5/c-equivalent-for-right-of-vb
期待:111111fiddlein
获取:111111o>_fiddlein
此外,在末尾编辑
但相反我得到: 111111o>_fiddlein
我假设如下:
1
2 |
string collection ="111111";
string tablename ="t_<idNo>_fiddlein"; // anything before ‘<idNo>_’ will not be observed |
那么应该这样做:
1
|
string result = collection + tablename.Substring(tablename.IndexOf("_<idNo>_") + 8);
|
您的问题是 VB6 InStr 函数是基于 1 的,而 C# IndexOf 函数是基于 0 的。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/269532.html