Sammlung von Daten (Messpunkte, Messreihe, viele Messdurchgaenge)
-
Hallo,
ich hab mal eine grundlegende Frage zur Sammlung von Daten. Ich erhalte ueber meinen Eventhandler Daten. 3 Punkte (x,y,z). Einen Datenpunkt kann ich wie folgt speichern:
public class Point3f { public float x, y, z; public Point3f() { x = 0; y = 0; z = 0; } public Point3f(float _x, float _y, float _z) { x = _x; y = _y; z = _z; } }
Da aber meine Messreihe aus N-Punkten besteht, muss ich somit eine Sammlung der Daten realisieren. Dabei habe ich mir eigentlich ueberlegt gehabt, dass ich also eine generische Liste erstelle:
public class measurement{ List<Point3f> points; public measurement() { points = new List<Point3f>(); } public List<Point3f> Points { get { return points; } } }
Schließlich habe ich nicht nur eine Messreihe, sondern ebenfalls beliebig viele Messreihen. Soll ich das nun wieder in einer Klasse realisieren?! (s.u.)
public class seriesOfMeasurements { List<pointCollection> messreihen; //... erstelle generische Liste fuer die messreihen }
Ist das so ein praktikabler Ansatz oder gibt es bessere Ansaetze hierfuer? Es sollen wirklich nur die Daten gespeichert. Erst zwischengespeichert und spaeter die Moeglichkeit zur Exportierung.
Vielen Dank im voraus!!!
-
Also Extra dafür Klassen anlegen halte ich für Unnötig. Die Points sind ok so. Und den Rest machst du einfach mit Normalen Listen, ohne es in Klassen auszulagern.
-
Es kommen noch zur "seriesOfMeasurements" einige weitere Informationen, Messdatum, Uhrzeit Begin+Ende...
Was ist mit einem DataSet oder dem IList Interface?!
-
Was soll damit sein?
Du solltest logisch Zusammenhängende Sachen auch wirklich zusammen fassen. Wenn also eine Serie von Messungen aus Messung, Datum und Uhrzeit besteht, dann solltest du eine Klasse Messung anlegen die diese Sachen zusammenfasst. Aber DataSet oder IList hat damit rein gar nichts zu tuen.
-
Gewöhne dir auch mal eine einheitliche Syntax an, ist ja grausig anzusehen.
At least
- Du schreibst manche klassen Gross und manche klein
- Die Argumente in dem Points Ctor beginngn mit _ #grusel
- Du hast einfache Felder public (dadurch auch von außen schreibbar
- Zugriffsberechtigungen komplett außer KontrolleZum Thema, Firefighter sagt es eigentlich ganz deutlich, Gruppiere so wie es sinn macht.
Wenn du einer Messung Datum, Punkte und Note gehört, pack das auch in so einem Objekt.
Dies kannst du dann auch in eine Liste Packen.public class Point { public float X { get; private set; } public float Y { get; private set; } public float Z { get; private set; } public static EmptyPoint() { return new Point(0, 0, 0); } public Point(float x, float y, float z) { X = x; Y = x; Z = x; } } public class Measurement { private List<Point> _points; public ReadOnlyCollection<Point> Points { get { return new ReadOnlyCollection<Point>(_points); } } public DateTime ReadDate { get; private set; } public string Note { get; private set; } public Measurement(DateTime readDate, string note, IList<Point> points) { _points = new List<Point>(); ReadDate = readDate; Note = note; _points.AddRange(points); } } public class MyClass { public List<Measurement> Measurements { get; set; } }
-
danke,
ihr habt mich weiter gebracht!