lav en klasse med navn og tal fields+properties som implementerer IComparable på navn læs ind fra fil i en ArrayList af den klasse sorter ArrarList udskriv ArrayList til en ny fil
Public Class Person Private _navn As String Private _tal As Integer Public Sub New() MyClass.New("", 0) End Sub Public Sub New(ByVal navn As String, ByVal tal As Integer) _navn = navn _tal = tal End Sub Public Property Navn() As String Get Return _navn End Get Set _navn = value End Set End Property Public Property Tal() As Integer Get Return _tal End Get Set _tal = value End Set End Property End Class
nu ved jeg ikke på hvilket niveau det programmerings kursus er, men hvis det er tilpas højt så kunne han godt få et ordentligt hak i tuden for ikke at have encapsulated de fields
så lader du klassen implementere IComparable (med sortering efter tal - ikke navn som jeg skrev tidligere) så kan du umiddelbart sortere en ArrayList med Person instanser
Public Class MitObjekt Implements IComparable Private _etNummer As Integer Private _etNavn As String Public Sub New(ByVal etNummer As Integer, ByVal etNavn As String) Me._etNummer = etNummer Me._etNavn = etNavn End Sub Public ReadOnly Property EtNummer() As Integer Get Return _etNummer End Get End Property Public ReadOnly Property EtNavn() As String Get Return _etNavn End Get End Property Public Function CompareTo(ByVal o As Object) As Integer Implements IComparable.CompareTo Dim mo As MitObjekt = CType(o, MitObjekt) If _etNummer = mo._etNummer Then Return _etNavn.CompareTo(mo._etNavn) Else Return _etNummer - mo._etNummer End If End Function Public Overloads Overrides Function ToString() As String Return (_etNummer & " " & _etNavn) End Function End Class
Class MainClass Public Shared Sub Main(ByVal args As String()) Dim list As ArrayList = New ArrayList list.Add(New MitObjekt(3, "TRE")) list.Add(New MitObjekt(2, "TO-A")) list.Add(New MitObjekt(2, "TO-C")) list.Add(New MitObjekt(2, "TO-B")) list.Add(New MitObjekt(1, "ET")) Console.WriteLine("Før sortering:") Dim i As Integer For i = 0 To list.Count - 1 Console.WriteLine(list(i)) Next list.Sort Console.WriteLine("Efter sortering:") For i = 0 To list.Count - 1 Console.WriteLine(list(i)) Next End Sub End Class
okay, tror jeg er med nu. Prøver lige at koge lidt over det, så vender jeg tilbage imorgen med evt. problemer, eller er det er jo bare at få afleveret nogle point.
hvad gør jeg så nu, når jeg skal have informationerne ud en af gangen? Altså først skal jeg skrive en linje med navnet, og derefter en lnije med tallet
Jeg er ikke helt sikker på om jeg ikke mere har biddraget til forvirringen ;^)
Anyway, så er jeg et øjeblik ikke i tvivl om hvem der har trukket læsset på denne her. :^)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.