Announcement

Collapse
No announcement yet.

array dynamisch erweitern

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

  • array dynamisch erweitern

    Hallo zusammen,

    ich müsste mal wissen, wie ich einen Array dynamisch erweitern kann.

    Normalerweise nehme ich für solche fälle immer eine list, da ich allerdigns eine externe lib eingebunden habe verlangt diese einen array vom typ double.

    Code:
    Dim werte() as Double = {}
    Wie kann ich denn diesem Array weitere Werte hinzufügen? jedes mal wenn ich in einer schleife durchgehen will heißt es, dass der Index nicht verfügbar ist. Ich nehme also an, dass das ein statischer array ist.

    Dieser einen Funltion aus der lib, die ich benötige muss man auch direkt den paramter als double übergeben, so wie ich ihn hingeschrieben habe.

    gruß anno

  • #2
    Array sind statisch.

    Nimm doch einfach eine generische Liste.
    Für die Kommunkation mit deiner Lib hat die List eine ToArray Methode sowie ein AddRange Methode für das konvertieren zu bzw. von einem Array.

    Comment


    • #3
      dim inti as integer = 0
      Do
      ..
      Redim Preserve Werte(inti)
      inti += 1
      ..
      Loop

      Sollte funktionieren.

      Comment


      • #4
        Hallo,

        auch wenn es Möglichkeiten wie ReDim gibt, gilt Ralfs Hinweis dennoch:
        Array sind statisch.
        Nimm doch einfach eine generische Liste.
        Gruß Jürgen

        Comment


        • #5
          na also es ist so, ich habe einen array ausstrukturen.

          Code:
          Structure test
          
              Dim min As Double
              Dim max As Double
              Dim avg As Double
          
            End Structure
          
            Private mlst_werte As List(Of test)
          einer methode kann ich aber nur einen array übergen.

          Code:
          data_min = lst_werte.avg.toArray()
          dieser aufruf, den ich hingeschriebne habe, funktioniert ja nicht. dasist bei mir eigentlich der knackpunkt, an dem ich nicht weiterkomme.

          Comment


          • #6
            Originally posted by anno View Post
            einer methode kann ich aber nur einen array übergen.
            Bei Deinem Code-Auszug nimmst Du aus einer List<test> ein Element "avg", dieses Element willst Du in ein Array verwandeln. Das Element gibt es bei einer List<T> aber überhaupt nicht und kann natürlich auch nicht in ein Array konvertiert werden.

            Du willst aber ganz einfach die ganze Liste konvertieren:
            Code:
            data_min = lst_werte.toArray()
            Dann kann wie gewünscht auf test(17).avg zugegriffen werden.

            Du musst also nur genauer darauf achten, was wie ineinander "verschachtelt" ist.

            Gruß Jürgen

            Comment


            • #7
              ja klar, ich weiß dass da sbeispiel nicht funktioniert, deswegen habe ich es auch hingeschrieben.

              ich brauche allerdings aus jedem strukturelement z.b. avg einen Array im datentyp double,so dass ich ihn einer funktion übergeben kann.

              das problem ist einfach in einem rutsch aus der struktur einen array zu erzeugen, hier allerdings nur aus dem strukturelement "avg". das ist das, was ich nicht ganz versteh, ob das überhaupt geht und wenn ja, wie?

              in so einen array muss ich es umwandeln, so ist es zumindest in der funktion deklariert.
              Code:
              dim data_avg as double()

              Comment


              • #8
                Gib doch bitte von Anfang an vollständige (und auch für Fremde verständliche) Informationen.

                Du hast also eine Struktur und eine List<Struktur>, brauchst aber ein Array von Struktur-Membern. Das geht zwangsläufig nicht "automatisch", sondern nur durch eine eigene Schleife. Die kannst Du (vermutlich am besten) in eine eigene Methode GetDataAvg auslagern, die das gewünschte double-Array zurückliefert.

                Jürgen

                Comment


                • #9
                  super danke, das redim hat funktioniert.

                  Comment

                  Working...
                  X