TList sorting problem...
BlitzMax Forums/BlitzMax Programming/TList sorting problem...
| ||
| Hi, There seems to be a bug with sorting raw integers in lists. '
' works with strings
List:TList = CreateList()
List.AddLast("hi")
List.AddLast("i'm")
List.AddLast("ok")
List.Sort()
'
' but not with integers
List:TList = CreateList()
List.AddLast(13)
List.AddLast(10)
List.AddLast(11)
List.Sort()It seems that the references to integers (and I assume other simple types, ie. float, double, byte etc), are lost during the sorting process.[edit] Nope, the other types refuse to be converted to an object, so it looks like it only applies to integers. |
| ||
| As you are not using Strict and AddLast expects objects the compiler is interpreting your integers as object handles. |
| ||
| Hi, I see, but that brings up another interesting thing: Strict ' ' but not with integers Local List:TList = CreateList() Local temp:Int = 12 List.AddLast(temp) List.AddLast(Object(temp)) List.Sort()Is it impossible to store integers in a TList then? Not sure why you would do it, but I guess it could be useful in some cases. |
| ||
| TLists are for storing objects only. Strings are in fact objects too. This works though: SuperStrict
Local List:TList = New TList
List.AddLast String("13")
List.AddLast String("10")
List.AddLast String("11")
List.Sort
For Local l$=EachIn List
Print Int(l$)
Next |
| ||
| This seems to crop up regularly. You could also make a TInteger "wrapper" type with a single integer field... Doc update to make it clear? |