【问题标题】:add to array from a loop C#从循环 C# 添加到数组
【发布时间】:2012-10-07 23:36:27
【问题描述】:

如何添加到 foreach 循环中的数组。

伪例子

String[] mylist;

foreach ( ipadress ip in list )
{
    // I want to add to array ip.ToString();
}
// then put my list to a textbox

【问题讨论】:

    标签: c# arrays string loops foreach


    【解决方案1】:

    如果你使用的是 linq,试试这个:

    String[] mylist = list.Select(I => Convert.ToString(I.ip)).ToArray();
    

    【讨论】:

      【解决方案2】:

      快速而简短:

       String[] myList;
      
       List<int> intList = new List<int> { 1, 2, 3, 4 };
      
       myList = intList.ConvertAll<String>(p => p.ToString()).ToArray<String>();
      

      【讨论】:

        【解决方案3】:
        int i=0;
        String[] mylist;
        foreach(ipaddress ip in list)
        {
        mylist[i]=ip.ToString();
        i++
        }
        

        【讨论】:

        • 这里可以编译代码。
        • 谢谢你,这就是我要找的!我自己想出来的。如果我给出一个 int i =0;退出循环和循环中的 i++,在每个循环中它都会给 i 值 0 .... c# 的新手:D
        • 我刚写了这个..我想像这个类不是预定义的..这个想法是..对不起,如果这段代码不起作用..
        • 问题并不清楚,但事实证明 System.Net 中有一个预定义的 IPAddress 类。 @Ramhound - 发布“这不会编译”并在不解释为什么它不会编译的情况下对所有内容进行投票对任何人都没有帮助。
        • 那是对的伙伴..我们是这个领域的初学者..谢谢你的评论..:D
        【解决方案4】:

        首先,如果这是一个家庭作业问题,它真的应该这样标记。

        无论如何,假设您可以完全控制要向其传递值的 string[],并假设您的 ipaddress 类已重载 .ToString() 以返回一些智能信息:

        string[] myList = new string[list.Count];
        int i = 0;
        foreach (IPAddress ip in list)
        {
            myList[i++] = ip.ToString();
        }
        

        虽然我不得不质疑你为什么要在数组和列表对象之间来回切换。

        【讨论】:

        • 我正在计算 cod 以显示我的本地 IP 地址。我把它贴下来了。尽管在 foreach 中我创建了一个 if (ip.AddressFamily.ToString() == "InterNetwork") 来显示 IP,但我意识到对于 c# 的新手并不知道如何从循环中添加数组。所以我这样做只是为了学习。
        • 不要嘲笑“ip.AdressFamily.ToString()” :)) 我不知道这样做很难,也不想研究
        • 糟糕。感谢您的提醒。 :)
        • @Ramhound - 你试过编译它吗?假设“ipaddress”是一个完全充实的类,而“list”是一个 List 对象。它在我的机器上编译得很好。
        【解决方案5】:

        想通了……编程新手……谢谢大家。我使用了 tharindlaksh 发布的相同代码。

        这就是它的样子:

        string[] all ;
        int i = 0;
        
        foreach (IPAddres ip in host.AddressList)
        {
             all[i] = ip.ToString();
             i++;
        }
        
        textBoxMain.Text = all[0] + "\n" + all[1] + \n" + all[2] + "\n" + all[3];
        

        【讨论】:

        • 这段代码不会编译。正确的类名是IPAddress。不清楚您将AddressList 的内容转换为字符串的原因。
        • 别忘了初始化你的字符串[]!您需要将其长度设置为(至少)与您传入的数据的长度相匹配,否则您可能会遇到异常。
        猜你喜欢
        • 2016-02-09
        • 1970-01-01
        • 1970-01-01
        • 2020-08-24
        • 2018-06-03
        • 2020-10-22
        • 2015-09-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多