2016-09-07 5 views
0

私は、1つのスレッドに3つの投稿を持つフォーラムがあるとします。サブコレクション付きコレクション

私はこの最終的な結果を取得したい:

Dim MyFourm As new Fourm 
MyFourm.Thread.Add(545)''for ex 545 mean Thread ID. 

MyForum.Thread(0).Post(1).Username 

スレッドが整数の集合(=スレッドID)でなければなりませんが ポストはポストタイプ

の集まりでなければなりませんので、この場合には、コードは言います目標がorgaにある:「最初のスレッドを選択し、そして第2のポストと、この記事を書く人のユーザー名取得」だけで明確にすること

Public Class Fourm 
'Thread should be inside this class and do some background code 
End Class 

Public Class Post 
Public Property Username as string 
Public Property PostContent as string 
End Class 

をのようなものコレクションを作成します。各スレッドは自分の投稿を持っている必要があります。

私は一例でフォーラムを選んだが、それが何か他のものかもしれない... 私は明確でない場合は、私を助けてくださいが。これは私の母国語ではない(しかし、心配しないでください - 私は読むことができます;))

+0

もし 'Thread'が整数を持つコレクションであれば、それは投稿を含むことができません。それぞれの 'Thread'インスタンスが' Post'のコレクションを持つ 'Thread'のコレクションを使用する必要があります。別のアプローチは 'Dictionary(Of Int32、List Of Of Post)'を使うことです。キーはスレッドIDで、値はすべての投稿のリストです。 –

答えて

0

私の正しいプロジェクトでは辞書を使用しています。私はとにかく ..いくつかのより多くを探検したい、私はあなたが 「あなたは、各スレッドのインスタンスは、ポストのコレクションを持っているスレッドのコレクションを使用する必要があります」について言う何をしようと、これが結果です:

Public Class MainFrm 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
     Dim MyForum As New Forum 
     MyForum.Thread.Add(500)' some id's 
     MyForum.Thread.Add(120) 

     MyForum.Thread(0).Posts.Add(New ForumPost() With {.PostContent = "Therad ID: 500 | Post: 1#", .Username = "Don"}) 
     MyForum.Thread(0).Posts.Add(New ForumPost() With {.PostContent = "Therad ID: 500 | Post: 2#", .Username = "Shon"}) 
     MyForum.Thread(0).Posts.Add(New ForumPost() With {.PostContent = "Therad ID: 500 | Post: 3#", .Username = "Ron"}) 

     MyForum.Thread(1).Posts.Add(New ForumPost() With {.PostContent = "Therad ID: 120 | Post 1#", .Username = "Emi"}) 


     For iThread = 0 To MyForum.Thread.Count - 1 
      For iPost = 0 To MyForum.Thread(iThread).Posts.Count - 1 
       Static Pst As New ForumPost 
       Pst = MyForum.Thread(iThread).Posts(iPost) 
       Console.WriteLine($"Content:{Pst.PostContent}, Username who post it:{Pst.Username}") 
      Next 
     Next 
    End Sub 
End Class 
Public Class Forum 
    Public Property Thread As New ThreadCollection 

End Class 

Public Class ForumThread 
    Inherits List(Of Integer) 
    Public Property Posts As New PostCollection 
    Sub New(id As Integer) 

    End Sub 
End Class 

Public Class ThreadCollection 
    Inherits List(Of ForumThread) 
    Public Overloads Sub Add(ByVal id As Integer) 
     MyBase.Add(New ForumThread(id)) 
    End Sub 

End Class 

Public Class ForumPost 
    Public Property Username As String 
    Public Property PostContent As String 
End Class 

Public Class PostCollection 
    Inherits List(Of ForumPost) 
End Class 



' Content:Therad ID: 500 | Post: 1#, Username who post it:Don 
' Content:Therad ID: 500 | Post: 2#, Username who post it:Shon 
' Content:Therad ID: 500 | Post: 3#, Username who post it:Ron 
' Content:Therad ID: 120 | Post 1#, Username who post it:Emi 

今私の質問です:これはこれのようになっていますか?それとも、これを書く良い方法がありますか?

+0

助けてください? – Yoal223

関連する問題