C#中的Mid和Instr函数

时间:2018-12-27 10:50:30

标签: c#

在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)。

1 个答案:

答案 0 :(得分:0)

MidInStr函数的最相似类似物分别是SubstringIndexOf

但是,您可以通过更简单的方式获得所需的结果:

        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();
        }