本文介绍了我不能表明我做错了什么的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
IPNetwork ipnetwork = IPNetwork.Parse(item);
/*Log.Text = "First Ip: " + ipnetwork.FirstUsable;
Log.Text = "Last Ip: " + ipnetwork.LastUsable;*/
startIP = "" + ipnetwork.FirstUsable;
lastIp = "" + ipnetwork.LastUsable;
int iOne = 255;
int iTow = 255;
int iThree = 255;
int iFour = 255;
string[] tokens = startIP.Split('.');
int value1 = Int32.Parse(tokens[0]); // 192
int value2 = Int32.Parse(tokens[1]); // 168
int value3 = Int32.Parse(tokens[2]); // 0
int value4 = Int32.Parse(tokens[3]); // 1
string[] tokensTow = lastIp.Split('.');
int valueOne = Int32.Parse(tokens[0]); // 192
int valueTow = Int32.Parse(tokens[1]); // 168
int valueThree = Int32.Parse(tokens[2]); // 0
int valueFour = Int32.Parse(tokens[3]); // 1
if (value3 == valueThree)
{
for (iOne = value4; iOne < valueFour; iOne++)
{
string IpOne = value1 + "." + value2 + "." + value3 + "." + iOne + "\n";
Enumurator.Text = IpOne + "\n";
}
}
推荐答案
string[] tokens = startIP.Split('.');
int value1 = Int32.Parse(tokens[0]); // 192
int value2 = Int32.Parse(tokens[1]); // 168
int value3 = Int32.Parse(tokens[2]); // 0
int value4 = Int32.Parse(tokens[3]); // 1
string[] tokensTow = lastIp.Split('.');
int valueOne = Int32.Parse(tokens[0]); // 192
int valueTow = Int32.Parse(tokens[1]); // 168
int valueThree = Int32.Parse(tokens[2]); // 0
int valueFour = Int32.Parse(tokens[3]); // 1
您需要使用第二次拆分的结果,而不是第一次拆分:
You need to use the result of the second split, instead of the first split again:
string[] tokens = startIP.Split('.');
int value1 = Int32.Parse(tokens[0]); // 192
int value2 = Int32.Parse(tokens[1]); // 168
int value3 = Int32.Parse(tokens[2]); // 0
int value4 = Int32.Parse(tokens[3]); // 1
string[] tokensTow = lastIp.Split('.');
int valueOne = Int32.Parse(tokensTow [0]); // 192
int valueTow = Int32.Parse(tokensTow [1]); // 168
int valueThree = Int32.Parse(tokensTow [2]); // 0
int valueFour = Int32.Parse(tokensTow [3]); // 1
不要忘记如果你在一个循环中重复设置相同的值,它将只包含循环退出时设置的最后一个值:
And don't forget that if you set the same value repeatedly in a loop, it will only ever contain the last value set when the loop exits:
for (iOne = value4; iOne < valueFour; iOne++)
{
string IpOne = value1 + "." + value2 + "." + value3 + "." + iOne + "\n";
Enumurator.Text = IpOne + "\n";
}
您可能希望在最后一行使用+ =而不是=。 (或者更好的是,StringBuilder)
It's possible that you want to use "+=" instead of "=" in that last line. (Or better, a StringBuilder)
这篇关于我不能表明我做错了什么的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!