0

嗨,我有一个小项目要做,现在我被困在中间了。

该程序是读取顺序文本文件并将其加载到结构数组/数组中。

数据信息是这样的(示例):

ID | Name    | Type
1  | Cat     | Animal
2  | Dog     | Animal
3  | Parrot  | Bird
4  | Tuna    | Fish
5  | Tiger   | Animal
6  | Sparrow | Bird

DATA.txt 文件中的示例数据如下所示:

1;Cat;Animal
2;Dog;Animal
3;Parrot;Bird
4;Tuna;Fish
5;Sparrow;Bird
6;Tiger;Animal

这只是作为示例数据,我的原始数据不止这些。

我已经使用 FileStreamReader 打开了 DATA.txt 文件:

Dim FileStreamReader As StreamReader = New StreamREader(DATA.txt)

读取列表中的所有元素并通过ReadArrayString.
使用以下方法拆分字符串:

DataString.Split(New Char() {";"c})

通过

ReadArrayString(0)
ReadArrayString(1)
ReadArrayString(2)

其中索引 0 是 ID,索引 1 是名称,索引 2 是类型

然后我从数组中加载下拉组合框菜单中的类型而不重复。像这样:

If TypeComboBox.FindString(ReadArrayString(2)) < 0 Then
  TypeComboBox.Items.Add(ReadArrayString(2))
End If

现在,当您单击 TypeComboBox 时,它将仅显示带有以下列表的下拉菜单。

Animal
Bird
Fish

在此之后,当从组合框下拉菜单中选择/单击动物类型时,它应该只在列表框中添加动物类型的 ID 和名称。

伪代码可能如下所示:

If Animal is selected/clicked from TypeComboBox then
  Add Cat into listbox
  Add Dog into listbox
  Add Tiger into listbox
Else If Bird is selected then
  Add Parrot into listbox
  Add Sparrow into listbox
Else If Fish is selected then
  Add Tuna in to listbox
End If

我只计算出将仅一列/数组中的项目加载到组合框中而没有重复。但无法弄清楚将一个列/数组的值与另一列/数组的值进行比较并将其加载到列表框中。我不想在代码中硬编码或写入匹配值。我想要的是使用数组。

任何帮助都会很棒。

对不起,如果我的解释很糟糕。我希望上面的伪代码可以让你对我的问题有所了解。

4

1 回答 1

0

除非我误解了您的问题,否则对于您正在尝试做的事情,这样的事情应该有效。

For Each row as String() In TwoDArray
    If row(2) = TypeComboBox.Text Then
        listbox.Items.Add(row(1))
    End If
Next
于 2012-05-02T14:02:04.680 回答