【问题标题】:Split All The Listbox Elements And Add Them All To A New String Array拆分所有列表框元素并将它们全部添加到新的字符串数组中
【发布时间】:2019-06-08 23:43:42
【问题描述】:

我的代码有问题。我有一个列表框,它有项目(项目数未知)。我的列表框是这样的:

                       hello my friends
                       have a good day
                       how r u?
                       I will do it
                       aBcDe

我想将我所有的列表框项目转移到一个字符串数组。之后,我想根据参数对其进行拆分(参数=空格)。所以最后看看数组:

{'hello', 'my', 'friends', 'have', 'a', 'good', 'day', how', 'r', 'u?','I','will ','做','它','aBcDe'}

这是我的代码:

         char[] sc={' '};
         string[] lb = mylistbox.Items.OfType<string>().ToArray();
         int cnt = lb.Length;
         for(int c=0; c<cnt; c++)
         {
            //I want to transfer the last array here.
         }

感谢您的回答。

【问题讨论】:

    标签: c# arrays winforms split listbox


    【解决方案1】:
    string[] lb = mylistbox.Items.OfType<string>().ToArray();
    
    //Create a single string which contains all the items seperated by a space
    string joined = string.Join(" ", lb); 
    
    //Split the single string at each space
    string[] split = joined.Split(new char[] { ' ' }); 
    

    【讨论】:

    • 所以我不需要for循环和数组长度,对吧?
    • 正确,不需要循环。
    【解决方案2】:

    您可以执行以下操作

    var arrayOfItems = listBox.Items.OfType<string>().ToArray();
    var result = arrayOfItems.SelectMany(s=>s.Split(' ')).ToArray();
    

    【讨论】:

      【解决方案3】:
       List<string> results = new List<string>();
       for(int c=0; c<cnt; c++)
       {
          results.AddRange(lb[i].Split(' '));
       }
      
      
       var stringArray = results.ToArray();
      

      【讨论】:

        猜你喜欢
        • 2021-09-10
        • 1970-01-01
        • 1970-01-01
        • 2018-01-09
        • 2018-01-15
        • 1970-01-01
        • 2016-11-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多