无法将列表中的字符串拆分为两部分

时间:2014-04-28 19:42:42

标签: c# .net string

我正在尝试为我的服务器程序创建配置文件。我正在逐行阅读它,当遇到所需的选项时,我正在处理该行。我必须提取写入文件的IP,但Visual Studio不会让我。 这是处理方法的代码:

////I'm assuming that file is loading is good...
private int processIp()
{
        String tempIpAddr = "";

        Console.Write("IP");
        for (int i = 0; i < readLines.Count; i++)
        {
            if (readLines[i].Contains("IP"))
            {
                if(readLines[i].Contains(":"))
                {
                    tempIpAddr = readLines.ElementAt(i).Split(':');
                }
            }
        }
        return 0;
 }

我收到了这个错误:错误4无法将类型'string []'隐式转换为'string'F:\ DB \ Dropbox \ Repozytoria \ ARDSQL GUI \ Sources \ Configuration.cs 85 38 ARDSQL GUI

我尝试将tempIpAddr更改为数组并将此readLines.ElementAt(i).Split(':');更改为此tempIpAddr = readLines[i].Split(':');

如何让它发挥作用?

2 个答案:

答案 0 :(得分:3)

String.Split()的结果是字符串数组string[]

将您的声明调整为:

String[] tempIpAddr;

答案 1 :(得分:1)

string.Split()返回一个字符串数组,你试图将它分配给一个不起作用的字符串变量。

如果您知道,IP地址始终是第一个&#39;之后的字符串段:&#39;在线上,并且IP地址后面没有任何内容,您可以修改您的代码:

tempIpAddr = readLines.ElementAt(i).Split(':')[1]

但是相信你的客户是一种可靠的失败方式。而且我至少会在Split()之后做一个Trim()。

(您的代码中还有一些其他问题,但您可能已经意识到这些问题:即您没有返回临时IP地址或使用它执行任何其他操作。)