Nadya,
If you are willing to do 2 steps, you can do what I did in the sample code I posted, that is create an auxiliar collection ordered by TabIndex, in it you have the whole object as a member and the TabIndex as a SortKey. Then you iterate this collection (the for each will give you the tab order) and add it to your final collection, using whatever you want as a Key.
"The five senses obstruct or deform the apprehension of reality."
Jorge L. Borges?
"Premature optimization is the root of all evil in programming."
Donald Knuth, repeating C. A. R. Hoare
"To die for a religion is easier than to live it absolutely"
Jorge L. Borges