Shell   18-03-2023, 11:36
#4
De la que hiciste, la transformé en dos.

Código:
Public Function CSortKey(c As Collection) As Collection
  ''Ordenar por la clave

  Dim aTmp As New String[]
  Dim cTemp As New Collection
  Dim sText As String
 
  For Each sText In c
    aTmp.Add(c.Key & "\t" & sText)
  Next
 
  aTmp.Sort(gb.Ascent)
 
  For Each sText In aTmp
    cTemp[Split(sText, "\t")[0]] = Split(sText, "\t")[1]
  Next
 
  Return cTemp
 
End

Public Function CSortValue(c As Collection) As Collection
  ''Ordenar por el valor      

  Dim aTmp As New String[]      
  Dim cTemp As New Collection
  Dim sText As String
 
  For Each sText In c
    aTmp.Add(sText & "\t" & c.Key)
  Next
 
  aTmp.Sort(gb.Ascent + gb.Language + gb.IgnoreCase)
 
  For Each sText In aTmp
    cTemp[Split(sText, "\t")[1]] = Split(sText, "\t")[0]
  Next
 
  Return cTemp
 
End

Supongo que según donde lo apliques, ordenar una colección tiene su interés.
Como su búsqueda es por la clave, siempre será más rápido que un array.

Pero desde luego tienes un problema, que no se pueden repetir las claves.

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
  
Usuarios navegando en este tema: 1 invitado(s)
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.