jo, im wesentlichen hast du alles korrekt verstanden am code. Einzig das Konzept "Parametrierten Konstruktor (
Mein Punkt ist allerdings: Du bist doch schon viel weiter.
Du hast doch bereits eine Liste aller Mp3Objekte (
Diese Liste, die du bereits hast - für die brauchst du doch nur eine Suchfunktion zu schreiben.
Imo musst du keine weitere Klasse erfinden und komische Dinge mit tun.
Tatsächlich solltest du das tunlichst unterlassen - es gibt in der Programmierung ein ganz wichtiges Grundprinzip: "Wenn etwas nicht nötig ist zu tun, dann ist es nötig, es nicht zu tun." (kannste auch googeln, ist von Alfons dem Weisen)
Ok - vlt. hast du die
Da kannst du auch eine wunnebare Suchfunktion für schreiben.
Wie gesagt: Aus einer
Eventuell brauchst du für "Album" eine neue Klasse - falls ein Album mehr sein soll als nur ein String mit dem Namen des Albums.
Eine Klasse
Nochmal zur Aufgabenstellung:
Ausser es ist eine dumme
Eine
Du willst da iwas mit Indizees rumfuchteln - so macht man das aber nicht.
Also entweder du durchsuchst deine
Erst wenn du diese Klassen hast, kannst du eine sinnvolle
Wobei auch die Alben nicht eine dumme
Also brauchst du auch eine Klasse
Obwohl - für
Diese Überlegungen - welche Klassen du brauchst, um eine sinnvolle
(eine sinnvolle
Aber wenn du Datenmodellierung erstmal nicht willst: Bleib bei genau deiner einen
Sub New(a,b,c)
) scheint dir neu - aber die Funktion davon hast du bereits begriffen. Und .ToString()
Tja, da heissts eben (Online-)Buch lesen - das betrifft das Konzept Vererbung.- 'Kann man das und Zeile 4 nicht auch zusammenfassen?
Ja - 'ich hab so um die 3k Datensätze, die in der Anzahl variieren Da kann ich nicht für jeden Datensatz eine Variable anlegen. Soltte ich da nicht gleich eine Liste nehmen?
Ja, das ist nur ein Beispiel-Datensatz. - 'Warum der Umweg über eine Methode,
'hat das was mit Zeile 8 zu tun? Wird die da aufgerufen?
Ja
'Ich hatte gedacht Methoden ruft man auf über MeineKlasse.MeineMethode()?? Geht das nicht mit Get und Set wie in meinem Post #8?
Ja (obwohl ich post#8 jetzt nicht nachgelesen hab)
Wie du siehst ist der Konstruktor auch nix anneres als eine Methode. Sowas ist nicht zwingend nötig, aber praktisch. - 'das hier ist glaube ich nur eine Hilfsfunktion? Aber die wird doch von nirgends aufgerufen??
Richtig. Recherchiere das SchlüsselwortOverrides
- da bekommst du einen kleinen Einblick in die Vererbungslehre objektorientierter Programmierung
Wirklich nötig ist das hier auch nicht, ist aber praktisch, zB im Debugger siehst du so am Haltepunkt sofort diese Informationen.
Haltepunkt, Lokalfenster ist dir bekannt? Ansonsten: Visual Studio - Empfohlene Einstellungen
Mein Punkt ist allerdings: Du bist doch schon viel weiter.
Du hast doch bereits eine Liste aller Mp3Objekte (
UltraID3
) - das hast du dir doch mit dieser Dll bereits zusammengestrickt - oder habich das falsch in Erinnerung?Diese Liste, die du bereits hast - für die brauchst du doch nur eine Suchfunktion zu schreiben.
Imo musst du keine weitere Klasse erfinden und komische Dinge mit tun.
Tatsächlich solltest du das tunlichst unterlassen - es gibt in der Programmierung ein ganz wichtiges Grundprinzip: "Wenn etwas nicht nötig ist zu tun, dann ist es nötig, es nicht zu tun." (kannste auch googeln, ist von Alfons dem Weisen)
Ok - vlt. hast du die
List(Of UltraID3)
noch nicht - dann bastel sie dir, und arbeite damit.Da kannst du auch eine wunnebare Suchfunktion für schreiben.
Ist das nachwievor die Aufgabenstellung?kafffee schrieb:
Nun soll, wenn ich etwas in eine Textbox eingebe, die listAlleInterpreten durchsucht werden nach TextBox1.Text Und zwar dass wenn ich also "Michael Jackson" eingebe, in einer Listbox alle seine Alben und in einer weiteren Listbox alle seine Titel angezeigt werden.
Wie gesagt: Aus einer
List(Of UltraID3)
kann eine Suchfunktion diese Informationen extrahieren.Eventuell brauchst du für "Album" eine neue Klasse - falls ein Album mehr sein soll als nur ein String mit dem Namen des Albums.
Eine Klasse
Mp3Datei
brauchst du nicht - da hast du bereits eine, die kaum zu toppen ist. (Es sei denn, du überführst die Geschichte in ein relationales Datenmodell, aber soweit scheinst du noch nicht zu sein).Nochmal zur Aufgabenstellung:
Eine listAlleInterpreten hast du doch garnet - wie willst du etwas durchsuchen, was du nicht hast??kafffee schrieb:
Nun soll, wenn ich etwas in eine Textbox eingebe, die listAlleInterpreten durchsucht werden nach TextBox1.Text Und zwar dass wenn ich also "Michael Jackson" eingebe, in einer Listbox alle seine Alben und in einer weiteren Listbox alle seine Titel angezeigt werden.
Ausser es ist eine dumme
List(Of String)
.Eine
listAlleInterpreten As List(Of String)
wird dir aber nix nützen, weil da findest du vlt. Michael Jackson drinne, aber seine Alben stehen da ja nicht drin.Du willst da iwas mit Indizees rumfuchteln - so macht man das aber nicht.
Also entweder du durchsuchst deine
List(Of UltraID3)
- da sind ja die Informationen drinne - oder du musst dir einen geeigneten Satz an Klassen aufbauen, zB für Interpreten und Alben.Erst wenn du diese Klassen hast, kannst du eine sinnvolle
listAlleInterpreten As List(Of Interpret)
haben die du durchsuchen kannst, und bei der ein Treffer dir alle seine Alben ausgeben kann.Wobei auch die Alben nicht eine dumme
List(Of String)
sein dürfen - du willst ja vom Album vermutlich alle Titel abrufen können oder sowas.Also brauchst du auch eine Klasse
Album
, und sogar auch eine Klasse Titel
.Obwohl - für
Titel
könntest du wieder deine UltraID3
nehmen - ein UltraID3
repräsentiert ja genau einen Titel.Diese Überlegungen - welche Klassen du brauchst, um eine sinnvolle
listAlleInterpreten
, listAlleAlben
, listAlleAlben_Eines_Interpreten
überhaupt bilden zu können - sowas nennt man Datenmodellierung.(eine sinnvolle
listAlleTitel
, listAlleTitelEinesAlbums
, listAlleTitelEinesInterpreten
- das kann bereits gebildet werden, dank der UltraID3
)Aber wenn du Datenmodellierung erstmal nicht willst: Bleib bei genau deiner einen
List(Of UltraID3)
, und durchsuche sie. Da sind alle Informationen drin, und können extrahiert werden.Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „ErfinderDesRades“ ()