从文本文件中拉出后操作数组

时间:2015-09-12 20:34:57

标签: arrays vb.net listbox

我已经彻底梳理了StackOverflow和其他来源以解决这些问题的答案,并且无法找到能够与我需要完成的步骤紧密协作的解决方案。

我需要做的事情:

  1. 从文本文件创建数组并显示在列表框中(已完成且有效)
  2. 让用户填写文本框,单击按钮,搜索数组中与文本框值相匹配的任何内容
  3. 将搜索结果显示在单独的列表框中
  4. 这是我到目前为止所得到的,并且它被相当黑,所以如果有任何可以改进的东西,我自然会成为所有为了那个原因。 `

    Public Class Form1
    
    Dim lblName As Object
    Public colleges As String
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim colleges() As String = IO.File.ReadAllLines("Colleges.txt")
        ListBoxCollege.Items.AddRange(colleges)
    End Sub
    
    Private Sub btnSearchGo_Click(sender As Object, e As EventArgs) Handles btnSearchGo.Click
        Dim n As Integer, college As String
        college = txtCollegeSearchUserInput.Text
        n = Array.IndexOf(colleges(), college)
        If n <> 1 Then
            [[Needs to output into new listbox, preferably here]]
        End If
    End Sub
    

    如果需要VB的其他内容,我可以在必要时提供!

1 个答案:

答案 0 :(得分:0)

在你的情况下你可以做这样的事情

For i As Integer = 0 To ListBoxCollege.Items.Count -1

    If ListBoxCollege.Items(i).ToString().IndexOf(college, StringComparison.OrdinalIgnoreCase) > -1 Then
        findList.Items.Add(ListBoxCollege.Items(i))
    End If

Next

这里的区别 - 你在数组上调用IndexOf,我为列表中的每个项目调用它。因此,我返回所有比赛,而你只返回第一个

搜索条件略有限制。您可以使用正则表达式以及通配符等。或者您将数据(大学)存储在System.Data.DataTable中,您将能够在数据库中运行Sql Select查询。