您可以做的一件事是……在 foreach 循环中,您需要一个与您的集合匹配的实例。我的意思是,例如,如果您有一个字符串列表,如下所示:
List<string> lMyList
程序员不能使用 int 或 double 的实例遍历此列表...
foreach (int lIterator in lMyList)
{ // code
}
这根本行不通,它会抛出一个关于“int”不是“string”类型的语法错误。
为了解决这个问题,您需要像这样遍历您的列表
foreach (string lIterator in lMyList)
{ // code
}
现在,回答你的问题。IPAddress 是它自己的类和类型。不能简单地使它成为一种字符串。但是,有一些方法可以解决这个问题。将字符串显式转换为 IP 地址。但是,您需要先遍历您的列表。
foreach (string lLine in File.ReadAllLines("proxy.txt"))
{
// Code In Here
}
这将迭代文本文件中的所有行。由于它是一个文本文件,它返回一个字符串列表。为了迭代字符串列表,程序员需要一个字符串局部变量来迭代它。
接下来,您需要将当前字符串解析为本地 IP 地址实例。有几种方法可以做到这一点,1) 您可以简单地解析 (System.Net.IPAddress.Parse()) 字符串,或者您可以 TryParse (IPAddress.TryParse()) 将字符串转换为 IPAddress。
Method One:
// This will parse the current string instance to an IP Address instance
IPAddress lIPAddress = IPAddress(lLine);
Method Two:
IPAddress lIPAddress; // Local instance to be referenced
// At runtime, this will "Try to Parse" the string instance to an IP Address.
// This member method returns a bool, which means true or false, to say,
// "Hey, this can be parsed!". Your referenced local IP Address instance would
// have the value of the line that was parsed.
if (IPAddress.TryParse(lLine, out lIPAddress))
{
// Code
}
好的,现在我们解决了这个问题。让我们完成这个。
// Iterates over the text file.
foreach (string lLine in File.ReadAllLines("proxy.txt"))
{
// Create a local instance of the IPAddress class.
IPAddress lIPAddress;
// Try to Parse the current string to the IPAddress instance.
if (IPAddress.TryParse(lLine, out lIPAddress))
{
// This means that the current line was parsed.
// Test to see if the Address Family is "InterNetwork"
if (string.Equals("InterNetwork", lIPAddress.AddressFamily.ToString()))
{
TextBox1.Text = lIPAddress.ToString();
}
}
}
我希望这有帮助!