VB.NET: массив объектов, Listbox1_SelectedIndexChanged и связывание значений - PullRequest
0 голосов
/ 06 ноября 2010

Я совершенно новичок в VB.NET, и это, вероятно, несколько шагов над моей головой, но мне удалось продвинуться так далеко только с Google.

Я читаю файл XML и создаюмассив классов для значений там, как видно:

Public Class yresults
    'Dim xdate As XmlNodeList = xDoc.GetElementsByTagName("Date")
    'Dim link As XmlNodeList = xDoc.GetElementsByTagName("Link")
    'Dim category As XmlNodeList = xDoc.GetElementsByTagName("Category")
    'Dim UserNick As XmlNodeList = xDoc.GetElementsByTagName("UserNick")
    'Dim numAnswers As XmlNodeList = xDoc.GetElementsByTagName("NumAnswers")
    'Dim numComments As XmlNodeList = xDoc.GetElementsByTagName("NumComments")
    'Dim subject As XmlNodeList = xDoc.GetElementsByTagName("Subject")
    'Dim content As XmlNodeList = xDoc.GetElementsByTagName("Content")

    Private mystrDate As String
    Private mystrLink As String
    Private mystrCat As String
    Private mystrUser As String
    Private mystrNA As String
    Private mystrNC As String
    Private mystrSubject As String
    Private mystrContent As String


    Public Sub New(ByVal strDate As String, ByVal strLink As String, ByVal strCat As String, ByVal strUser As String, ByVal strNA As String, ByVal strNC As String, ByVal strSubject As String, ByVal strContent As String)
        MyBase.New()
        Me.mystrDate = strDate
        Me.mystrLink = strLink
        Me.mystrCat = strCat
        Me.mystrUser = strUser
        Me.mystrNC = strNC
        Me.mystrNA = strNA
        Me.mystrSubject = strSubject
        Me.mystrContent = strContent

    End Sub

    Public ReadOnly Property strDate() As String
        Get
            Return mystrDate
        End Get
    End Property

    Public ReadOnly Property strLink() As String
        Get
            Return mystrLink
        End Get
    End Property

    Public ReadOnly Property strUser() As String
        Get
            Return mystrUser
        End Get
    End Property

    Public ReadOnly Property strNA() As String
        Get
            Return mystrNA
        End Get
    End Property

    Public ReadOnly Property strNC() As String
        Get
            Return mystrNC
        End Get
    End Property

    Public ReadOnly Property strSubject() As String
        Get
            Return mystrSubject
        End Get
    End Property

    Public ReadOnly Property strContent() As String
        Get
            Return mystrContent
        End Get
    End Property

    Public Structure arc
        Public strDate As String
        Public strLink As String
        Public strCat As String
        Public strUser As String
        Public strNA As String
        Public strNC As String
        Public strSubject As String
        Public strContent As String
    End Structure

End Class

и ...

Dim cntr As Integer = 0

While cntr < link.Count
    yresults.Add(New Yresults(xdate(cntr).InnerText.ToString, link(cntr).InnerText.ToString, category(cntr).InnerText.ToString, UserNick(cntr).InnerText.ToString, numAnswers(cntr).InnerText.ToString, numComments(cntr).InnerText.ToString, subject(cntr).InnerText.ToString, content(cntr).InnerText.ToString))
    cntr += 1
End While

Таким образом, массив "yresults" заполнен классами "yresults",который имеет значения strdate, strlink и т. д. и т. д.

Как выполнить итерацию по этому списку массивов и сравнить поле «strSubject» yresults с listbox1.selectedvalue?Узнав, как это сделать, я смогу сканировать массив и получать другие данные, которые мне нужны (в частности, strLink).

Код, который у меня есть, работает, но я не уверен, как поступитьВот.Буду признателен за мягкий толчок (или толчок) в правильном направлении.

1 Ответ

0 голосов
/ 06 ноября 2010

Некоторые вещи, которые помогут вам в .Net:

  • Предпочитайте класс над структурой, если у вас нет веской причины не
  • Не использовать ArrayLists - предпочитайте System.Collections.Generic.List (Of T)
  • Посмотрите на использование класса System.Xml.Serialization.XmlSerializer для чтения ваших XML-данных.
...