Announcement

Collapse
No announcement yet.

ArrayList: Items in Liste direkt modifizieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ArrayList: Items in Liste direkt modifizieren

    Hallo Leute,
    Bin noch blutiger C# Anfänger und möchte gerne die ArrayList als dynamischen Objektspeicher in den Griff kriegen.
    Wie kann ich ein Item in der Liste direkt modifizieren, ohne den Umweg einer Kopie und dann zurückschreiben?

    <PRE>
    public struct Line
    {
    public Point p1, p2; // Linien-Start/Ende
    public Boolean selected;// true, wenn Linie angeklickt ist
    }

    Line l = new Line();
    ArrayList arrlst = new ArrayList();

    ....

    l.selected = false; // u.a. Eigenschaft 'selected' in Line initialisieren
    arrlst.Add(l); // Index 0

    ....

    l = (Line) lst[0]; // Item mit Index 0 aus Liste holen
    l.selected = true; // Eigenschaft 'selected' in Line modifizieren
    arrlst[0] = (Object)l; // Item 0 in Liste zurückschreiben

    Leider geht dies hier nicht:

    ((Line)arrlst[0]).selected = true;
    </PRE>
    Vielen Dank für Eure Hilfe
    Pat

  • #2
    Hallo Pat,

    ((Line)arrlst[0]).selected = true;

    sollte funktionieren, wenn Du Line als Klasse und nicht als struct definierst.

    Klau

    Comment


    • #3
      Hi Klaus,
      Vielen Dank für den Tip! Aha ja, Werttyp und Referenztyp, klar.
      Gruss Pa

      Comment


      • #4
        Die Line kann man auch mit eigenschaften versehen. Das geht so:<p>
        <pre>
        public struct Linie
        {
        private Point p1;
        private Point p2;

        public Linie (p1a, p2a)
        {
        p1 = p1a;
        p2 = p2a;
        }

        public P1 { get { return p1;} }
        public P2 { get { return p2;} }
        }
        </pre>
        <p>
        Brauchst Du auch einen Schreibzugriff auf die Felder dann so:
        <p>
        <pre>
        public P2
        {
        get { return p2; }
        set { p1 = value; }
        }
        </pre>
        Schnell wirst Du erkennen, das der Zugriff via Egenschaft sehr viel konfortabler und sicherer ist.
        <p>
        Chris

        --
        www.schlechte-doku-hasser.d

        Comment

        Working...
        X