Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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#_.net_String - Fatal编程技术网

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

C# 无法将列表中的字符串拆分为两部分,c#,.net,string,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

我正在尝试为我的服务器程序创建一个配置文件。我一行一行地读,当遇到所需的选项时,我正在处理该行。我必须提取写入文件的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;
 }
///我假设正在加载的文件是好的。。。
私有int-processIp()
{
字符串tempIpAddr=“”;
控制台。写入(“IP”);
for(int i=0;i
我收到了这个错误:错误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(“:”)


如何使其工作?

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

将您的声明调整为如下所示:

String[] tempIpAddr;
string.Split()返回一个字符串数组,您试图将其分配给一个字符串变量,但该变量无效

如果您知道IP地址始终是行中第一个“:”后面的字符串段,并且IP地址后面不会有任何内容,那么您可以修改代码:

tempIpAddr = readLines.ElementAt(i).Split(':')[1]
但相信你的客户肯定会失败。在分割()之后,我至少会做一次修剪()


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

真的吗?呃,我应该去睡觉了。。。谢谢您的帮助:)也可以将其设置为“=null;”如果您稍后尝试使用“未初始化数据”时遇到任何编译器错误…根据他的代码,这不会发生,因为变量的第一次使用是在设置它。@NathanA我个人在尝试使用它时遇到以下情况:“错误1使用未分配的局部变量'TempipAddress'”,如果我在循环下面使用它。。。不知道您正在使用哪个编译器。无论字符串中是否有“:”,Split()都将始终返回一个值,并始终将其分配给该变量。因此,只要在赋值语句之后的循环中使用该值,就不需要在开始时将其声明为null。是的,我知道它们。现在已经修好了。我信任我的客户机,因为若出现这种情况,配置文件中将出现错误,将引发异常或警告,服务器将无法继续。