ListToArray

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Bob

Betreff: ListToArray

BeitragSo, Nov 26, 2006 13:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ic verwende z.Zt. ziemlich oft die ListtoArray Function um eine mit Types befüllte Liste in ein Temporäres Array zu überführen.
Bisher machte ich das immer so:

Local tempArr:Object[]
TempArr = ListToArray(MeineListe)

Beim Zugriff auf das Array muss dannallerdings mittels

Local tt:meinTyp = MeinTyp(TempArr[Nr])

zurück gecastet werden.

kann man nicht die schon beim ListToArray den entsprechenden Type angeben?

Beispiel (Funktioniert natürlich nicht)
Local TempArray:MeinTyp[] = ListToArray:MeinTyp(MeineListe)

Das würe mir das lestige zurückcasten ersperen.
Ich hoffe ihr wisst was ich meint.
Danke

BladeRunner

Moderator

BeitragSo, Nov 26, 2006 13:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier kann ich dir nur einen Workarround anbieten. Ist etwas blöd, weil Speicherlastig, aber da es dir ja um locale Arrays geht:

Code: [AUSKLAPPEN]
Type meintyp
Field bla:Int
   Method New()
      bla = Rand(100)
      Print bla
   End Method
   
End Type

Local meineliste:tlist = New tlist
For i = 0 To 30
   t:meintyp = New meintyp
   ListAddLast meineliste , t
Next
Print
Local TempArray:Object[] = ListToArray(MeineListe)
Local t2:meintyp[]
t2=t2[..temparray.length]
For i = 0 To temparray.length-1
   t2[i] = meintyp(temparray[i])
Next

For i = 0 To 30
   Print t2[i].bla
Next

ich erstelle ein 2es locales Array welches dann die Object-zu-Meintyp-Konvertierung übernimmt.
Dirty aber geht.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Bob

BeitragSo, Nov 26, 2006 13:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo BladeRunner,

danke für den Tip aber da Caste ich lieber zurück.

P.S.
Wie ich oben gesehen habe ist meine Rechtschreibung heute wieder unter aller Sau.

Vertex

BeitragSo, Nov 26, 2006 13:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Und wie wäre es mit

Code: [AUSKLAPPEN]
Local Array  : TMyType[], ..
      Index  : Int, ..
      MyType : TMyType

Array = New TMyType[MyList.Length]
For MyType = EachIn MyList
   Array[Index] = MyType
   Index :+ 1
Next


?

mfg olli
vertex.dreamfall.at | GitHub

Bob

BeitragSo, Nov 26, 2006 14:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Vertex,

so habe ich das früher gemacht als ich ListToArray noch nicht kannte.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group