对应的第一行数组与第二行VB

时间:2016-05-10 14:48:23

标签: arrays vb.net

我有一个文件显示第一行的歌曲名称,然后是第二行的流派,第三行的时间。

实施例

All You Need is Love-Beatles
Rock
4.25

这种情况继续下去。我需要一些方法来对应带有流派的歌曲,然后使用数组在名为 lstPlayList 的列表框中显示它们

我有

strSongs(intCount) = objReader.ReadLine()
strGenre(intCount) = objReader.ReadLine()
dblLength(intCount) = Convert.ToDouble(objReader.ReadLine())

用于存储每个变量,但我无法将歌曲附加到流派

1 个答案:

答案 0 :(得分:0)

而不是为一个项目设置三个单独的数组,你可以像其他评论者所说的那样,创建一个数据库,但如果你不想那么做,试试这个。

在Form的类定义列表顶部创建一个结构: -

Structure Song
    Dim Name As String
    Dim Genre As String
    Dim Duration As Single
End Structure

这有效地创建了一个新的数据类型。

接下来,创建一个这样的数据类型列表: -

Dim Songs As New List(Of Song)

当您从文件中读取数据时,您可以将数据添加到列表中,而不是您在问题中包含的数据: -

    Dim newSong As Song
    newSong.Name = objReader.ReadLine()
    newSong.Genre = objReader.ReadLine()
    newSong.Duration = Convert.ToDouble(objReader.ReadLine())

现在您有一个包含所有数据的列表,您可以搜索列表并将结果作为所有结果的新列表返回。这是搜索和返回列表的函数: -

Private Function SearchSongsByGenre(searchGenre As String) As List(Of Song)
    Dim returnList As New List(Of Song)
    For Each searchSong As Song In Songs
        If searchSong.Genre = searchGenre Then
            returnList.Add(searchSong)
        End If
    Next
    Return returnList
End Function

要在另一个子组件中使用它,只需在子组件中创建一个名为..的列表说.. SearchResults: -

Dim SearchResults As New List(of Song)
Searchresults = SearchSongsByGenre("Rock")

现在你有一个所有歌曲的列表 Rock

比搜索数组和从3个可能会失去同步的数组中获取数据要安全得多。

相关问题