Vytvořte třeba takhle dvě třídy. Do třídy Zak budete načítat jednotlivé žáky s jejich třídou z té txt databáze (jenom upravíte ten Váš cyklus, aby při každém průchodu instancoval jednoho žáka a uložil ho někam do Listu).
Class Zak
Public Property Jmeno() As String
Get
Return m_Jmeno
End Get
Set
m_Jmeno = Value
End Set
End Property
Private m_Jmeno As String
Public Property NazevTridy() As String
Get
Return m_NazevTridy
End Get
Set
m_NazevTridy = Value
End Set
End Property
Private m_NazevTridy As String
End Class
Potom vytvořte třídu Trida, ktera bude obsahovat jeji nazev a enumeraci zaku.
Class Trida
Public Property Nazev() As String
Get
Return m_Nazev
End Get
Set
m_Nazev = Value
End Set
End Property
Private m_Nazev As String
Public Property Zaci() As IEnumerable(Of Zak)
Get
Return m_Zaci
End Get
Set
m_Zaci = Value
End Set
End Property
Private m_Zaci As IEnumerable(Of Zak)
End Class
Ty žáky načtené z txt souboru si ukládejte do nějakého List<Zak>. Na tento List potom udělejte jednoduchý LINQ dotaz (udělal jsem ho na testovacích datech):
Dim zaci = New Zak(5) {New Zak() With { _
Key .Jmeno = "Petr Vomacka", _
Key .NazevTridy = "A" _
}, New Zak() With { _
Key .Jmeno = "Franta Patocka", _
Key .NazevTridy = "A" _
}, New Zak() With { _
Key .Jmeno = "Lenka Mala", _
Key .NazevTridy = "B" _
}, New Zak() With { _
Key .Jmeno = "Jarmila Velka", _
Key .NazevTridy = "C" _
}, New Zak() With { _
Key .Jmeno = "Jakub Vysoky", _
Key .NazevTridy = "A" _
}, New Zak() With { _
Key .Jmeno = "Honza Dlouhan", _
Key .NazevTridy = "C" _
}}
Dim tridy = (From trida In From zak In zaciGroup zak By zak.NazevTridyNew Trida() With { _
Key .Nazev = trida.Key, _
Key .Zaci = trida _
}).ToList()
V proměnné tridy teď budete mít jednotlivé třídy s jejich názvem a enumeraci všech žáků, kteří do ni patří. Procházet to potom můžete třeba takto:
For Each trida As var In tridy
For Each zak As var In trida.Zaci
Console.WriteLine("{0} : {1}", zak.Jmeno, zak.NazevTridy)
Next
Next
Tu proměnnou třída už potom můžete nasázet do toho viewtree. PS. konvertoval jsem to přes online konvertor ze C#, tak snad to půjde normálně zkompilovat.
|