拆分列表框项目,拆分不包含选定项目的项目

时间:2019-01-17 21:49:00

标签: c# arrays winforms split listbox

为解释我要执行的操作,以下是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[] { ' ' });

谢谢您的回答...

2 个答案:

答案 0 :(得分:2)

您可以使用lb2.SelectedItem来抓取所选项目并将其拆分,然后取出其余项目(通过使用{{1筛选出索引为lb2.SelectedIndex的项目}}子句),然后对结果执行Where,并用空格分隔每个字符:

SelectMany

答案 1 :(得分:0)

  • 验证是否已至少选择一项,以免发生异常。
  • 在第一个数组中插入当前所选ListBox项的内容,并使用String.Split()对其进行拆分(由于我们是在空白处进行拆分,因此无需指定分隔符:这是默认设置)。
  • 获取所有未选中的项(.Where项索引不是当前的),并使用SelectMany展平通过拆分每个项的内容而生成的数组。

{{1}}