如何将字符串[](从文本框)转换为IPAddresses的列表或数组?

本文关键字:IPAddresses 转换 列表 数组 字符串 文本 | 更新日期: 2023-09-27 18:17:31

好吧,我不确定如何做到这一点,因为我正在努力自学c#,同时创建一个工作程序。

我正在创建一个Windows窗体c#项目,我有一个文本列表的任何地方从1个IP地址到数千个IP地址在它。当我单击表单上的提交按钮时,我希望它从消息框的内容中创建一个列表,每次一行。

我还想使用系统将列表解析为IP地址数组。Net IPAddress类为每个IP地址的数组。

我得到没有错误,当我使用List List = new List(textBox1.Lines);使用下面的代码:

        private void Submit_Button_Click(object sender, EventArgs e)
        {
//            //Pass Text of TextBox1 to String Array tempStr
            List<string> list = new List<string>(textBox1.Lines);
//           // Loop through the array and send the contents of the array to debug window. 
//           for (int counter=0; counter < list.Count; counter++)
//           {
//               System.Diagnostics.Debug.WriteLine(list[counter]);
//           }

            this.Hide(); 
            Form2 f2 = new Form2(list);
            f2.Show();

        }

但是,如果我尝试在这里使用IPAddress解析列表。解析它会引发许多错误。List = new List(IPAddress.Parse(textBox1.Lines));

  1. 最佳重载方法匹配'System.Net.IPAddress.Parse(string)'有一些无效参数
  2. 参数1:无法从'string[]'转换为'string'
  3. 最佳重载方法匹配'System.Collections.Generic.List.List(System.Collections.Generic.IEnumerable)'有一些无效参数
  4. 参数1:无法从System.Net转换。IPAddress' to 'System.Collections.Generic.IEnumerable'

我的印象是IPAddress.Parse(textBox1.Lines)的最终产品将是每个3字节的4个字符串数组,所以字符串数组不会工作吗?

        private void Submit_Button_Click(object sender, EventArgs e)
        {
//            //Pass Text of TextBox1 to String Array tempStr
            List<string[]> list = new List<string[]>(IPAddress.Parse(textBox1.Lines));
//           // Loop through the array and send the contents of the array to debug window. 
//           for (int counter=0; counter < list.Count; counter++)
//           {
//               System.Diagnostics.Debug.WriteLine(list[counter]);
//           }

            this.Hide(); 
            Form2 f2 = new Form2(list);
            f2.Show();

        }

然后我为我的列表尝试了一种不同的变量,它也不起作用。List = new List(textbox . lines);

得到这些错误。1. 'System.Collections.Generic.List.List(System.Collections.Generic.IEnumerable)'的最佳重载方法match有一些无效参数2. 参数1:无法从'string[]'转换为'System.Collections.Generic.IEnumerable'

        private void Submit_Button_Click(object sender, EventArgs e)
        {
//            //Pass Text of TextBox1 to String Array tempStr
            List<IPAddress> list = new List<IPAddress>(textBox1.Lines);
//           // Loop through the array and send the contents of the array to debug window. 
//           for (int counter=0; counter < list.Count; counter++)
//           {
//               System.Diagnostics.Debug.WriteLine(list[counter]);
//           }

            this.Hide(); 
            Form2 f2 = new Form2(list);
            f2.Show();

        }

我不能为我的生活弄清楚如何转换这个字符串[]textBox1。对于我的目的,行到一个IPAddress

请帮。

如何将字符串[](从文本框)转换为IPAddresses的列表或数组?

创建一个列表,遍历数组,逐个解析IP地址:

List<IPAddress> addresses = new List<IPAddress>();
foreach (string input in this.textBox1.Lines)
{
    IPAddress ip;
    if (IPAddress.TryParse(input, out ip))
    {
        addresses.Add(ip);
    }
    else
    {
        Console.WriteLine("Input malformed: {0}", input);
    }
}