在C#中转换VB的Mid和Instr函数时遇到问题 我有一个字符串数组,它拆分我的连接字符串,像这样:
(0)"Data Source" = 192.123.21.2\sql2014"
(1)"Initial Catalog = IPETDB"
(2)"User ID = sa"
(3)"Password = M******"
(4)"Connection Timeout = 5"
我要检索“初始目录”的值
在VB中:
For i = 0 To arrkey.Length -1
Retval = UCase(Mid(arrkey.GetValue(i), 1, Instr(arrkey.GetValue(i), "=",
) - 1))
If Trim(retval) = Trim("INITIAL CATALOG") Then
DBName = Mid(arrkey.GetValue(i), Instr(arrkey.GetValue(i), "=", ) + 1)
End If
Next
在C#中,.GetElement(1)
可以实现上述索引值,但是我希望在“ =”之后的值,即:Senario中的数据库名称(IPETDB)。
答案 0 :(得分:0)
Mid
和InStr
函数的最相似类似物分别是Substring和IndexOf。
但是,您可以通过更简单的方式获得所需的结果:
List<string> strings = new List<string>()
{
"Data Source = 192.123.21.2\\sql2014",
"Initial Catalog = IPETDB",
"User ID = sa",
"Password = M******",
"Connection Timeout = 5"
};
foreach (var str in strings)
{
var tokens = str.Split('=');
if (tokens.Length != 2)
continue;
if (tokens[0].Trim() == "Initial Catalog")
DBName = tokens[1].Trim();
}