Laden...

Wie kann ich eine Liste mit N Items richtig serialisieren?

Erstellt von jok3r89 vor 6 Jahren Letzter Beitrag vor 6 Jahren 998 Views
J
jok3r89 Themenstarter:in
70 Beiträge seit 2017
vor 6 Jahren
Wie kann ich eine Liste mit N Items richtig serialisieren?

Ich bin immer wieder erstaunt was solch kleine Problemchen an Fragen und Antworten verursachen können.... 😁

Ich stehe gerade vor einem anderen Problem, und komme seit einer Stunde nicht wirklich voran.

Ich schreibe gerade ein Programm das einen Byte Stream empfängt.
Das Program soll Parametrierbar sein, somit ich kann die länge des Streams und auch die Datentypen die in dem Stream an gewissen Positionen zu finden sind verändern.
Die Config dafür würde ich erst mal mit einer XML realisieren wollen.
Für das XML lege ich gerade zum Serialisieren eine Class an.


   {   //input
        public Array Stream { private get; set; }
        //Config
        public Sharp7.S7Consts.S7Tag StreamConfig;
        // Items
        public List<Tuple<string, double, double, double>> items;
    }

Weil ich die Anzahl der Daten anfangs noch nicht kenne müsste ich dazu eine Liste anlegen.
Scheinbar ist die Definition von " public List<Tuple<string, double, double, double>>;" falsch.
Kann mir da jemand weiter helfen ?

3.003 Beiträge seit 2006
vor 6 Jahren

Du hast die Tuple-Klasse falsch verstanden. Tupel sind Paare geordneter Werte. Was du suchst, ist eine Menge von Zeichenketten, denen eine Liste von double-Zahlenwerten zugeordnet ist. Das kann man zwar mit der Tuple-Klasse abbilden, aber dafür ist sie eigentlich nicht da (sondern eher für sehr kurzlebige Konstrukte).


class MappedValue
{
    public string Ident { get; set; }
    public IEnumerable<double> Values { get; }
    
    public MappedValue(string ident, IEnumerable<double> values)
    {
        //selbst ausfüllen
    }
}

public IEnumerable<MappedValue> GetValuesFromStream(Stream inputStream)
{
   using(inputStream)
   {
       while(...)
       yield return new MappedValue(...); //yield in einem using ist möglicherweise nicht optimal. Schwer einschätzbar ohne mehr Code von dir zu kennen
    }
}

LaTino

EDIT: [Hinweis] Wie poste ich richtig? pro Thema ein Thread. Jetzt muss ein Admin das Abtrennen, weil du zu faul warst 😦

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)