I have this code...

Code:
Dim instances = From t In Assembly.GetExecutingAssembly().GetTypes()
                        Where t.GetInterfaces().Contains(GetType(Shape2D))
                        Select New With {
                          .className = t.Name,
                          .index = t.GetProperty("sortIndex"),
                          .argumentsString = t.GetProperties().Select(Function(p) p.Name).Except(New String() {"sortIndex"}).ToArray}
The .index property isn't returning the integer values i'm trying for. The goal is to sort instances based on the integers 0-9 which are stored in the sortIndex property of the concrete classes.
Can anyone help? I've tried more or less every possible angle.