首页 > 解决方案 > 拆分列表框项目并拆分没有选定项目

问题描述

为了解释我想要做的事情,下面是我的listbox(三个文本列表项)中可能存在的示例:

                            listbox
                     ----------------------
                     |  hello my friends  |
                     |  how r u today?    |
                     |  i'm here          |
                     ----------------------

我想将我的listbox项目(在有空间的地方拆分)分成 2 个数组。第一个数组将是我选择的项目(假设我们选择“你好,我的朋友”,这只是一个示例;也许可以选择第二个或第三个项目)拆分,第二个数组将是我未选择的项目数组。像这样;

string[] firstArray = {"hello", "my", "friends"}

string[] secondArray = {"how", "r", "u", "today?", "i'm", "here"}

但我不知道我该怎么做......这是我的代码:

         string[] LBI = lb2.Items.OfType<string>().ToArray();                
         string[] selectedItemSplit=lb2.SelectedItem.ToString().Split(' '); 
         string jo = string.Join(" ", LBI);
         string[] sp = jo.Split(new char[] { ' ' });

谢谢你的回答...

标签: c#arrayswinformssplitlistbox

解决方案


您可以使用抓取选定的项目并将其拆分,然后取出其余项目(通过使用子句lb2.SelectedItem过滤出具有索引的项目),然后对结果执行 a,将每个项目拆分为空格字符:lb2.SelectedIndexWhereSelectMany

var nonSelected = lb2.Items.OfType<string>()
    .Where((item, index) => index != lb2.SelectedIndex);

var first = lb2.SelectedItem.ToString().Split(' ');
var rest = nonSelected.SelectMany(others => others.Split(' ')).ToArray();

推荐阅读