【问题标题】:adding multiple listbox items into one listbox将多个列表框项目添加到一个列表框中
【发布时间】:2015-12-16 13:07:43
【问题描述】:

我正在使用 vb.net 表单。

我有 8 个列表框(listbox1、listbox2、listbox3..),每个列表框包含许多项目和另一个空列表框(listbox10)。我正在尝试将第一个列表框项目添加到列表框10

ex: ) listbox1 第一个项目是 'A' , listbox2 第一个项目是 'b' , listbox3 第一个项目是 'c'...等。现在 listbox10 第一项必须是“Abc...”

问题是我只能将 3 个列表框添加到列表框10 但我希望所有 8 个列表框都包含在循环中。

这是我的代码

Dim n As Integer = _
Math.Min(ListBox1.Items.Count, Math.Min(ListBox2.Items.Count,    ListBox3.Items.Count))

For i As Integer = 0 To n - 1
ListBox10.Items.Add( _
    ListBox1.Items(i).ToString + _
    ListBox2.Items(i).ToString + _
    ListBox3.Items(i).ToString)
Next

【问题讨论】:

  • 查看您的 Math.Min 表达式,我认为您的列表框包含不同数量的项目。对吗?
  • @Steve 没有所有相同数量的商品

标签: vb.net listbox


【解决方案1】:

为您要处理的所有列表框创建一个List<Listbox>。 然后,使用 Linq,很容易达到您的目标

Dim controls = new List(Of Listbox)() From _
      { listbox1, listbox2, listbox3, ....etc.... }
Dim minCount = controls.Min(Function(x) x.Items.Count)
for x = 0 to minCount-1
    listbox10.Items.Add(string.Join(" ", controls.Select(Function(lb) lb.Items(x).ToString)))
Next

当然,如果所有 Listbox 的项目数量相同,那么计算找到项目数量较少的列表框是无用的,您可以使用任何 Listbox 的 Items.Count 替换它(但是,在防御性编程中,我会离开它)

【讨论】:

  • 感谢您的支持,但尝试上述代码时会出现很多错误
  • 对不起,这是 C#,我会为 Vb.NET 修复答案
  • 别担心 :)
  • 好吧,VB.NET 应该也能正常工作(别忘了导入 System.Linq)
  • 非常感谢您的帮助 .. 但我正在尝试添加 refrence linq .. 但根本找不到它 .. 我会继续尝试 .. 非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多