none
necesito ordenar item listview de forma aleatoria en visual studio net RRS feed

  • Pregunta

  • necesito saber si pe puede ordenar item listview de forma aleatoria en visual studio net; tengo una aplicacion donde muestro item en un listview y con un boton control los ordeno de forma ascendente y descendente y me gustaria tambien poder dar la opcion de ordenar en forma aleatoria

    jhon fonttz

    lunes, 12 de noviembre de 2018 16:27

Respuestas

  • Hola  jhon fonttz

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te recomiendo ingresar al siguiente enlace (en inglés) donde se expone un caso similar al que presentas y puedas encontrar una posible solución.

    https://social.msdn.microsoft.com/Forums/en-US/a472d289-f15f-408c-bc32-d6c30703a39b/shuffling-items-in-a-listview?forum=Vsexpressvb

    Gracias por usar los foros de MSDN.

    Pablo Rubio
     ____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    • Marcado como respuesta jhon fonttz jueves, 15 de noviembre de 2018 16:27
    lunes, 12 de noviembre de 2018 17:55
  • Hola puedes hacer algo asi

    Private Shared rng As Random = New Random()
    
        <Extension()>
        Public Shared Sub Shuffle(Of T)(ByVal list As IList(Of T))
            Dim n As Integer = list.Count
    
            While n > 1
                n -= 1
                Dim k As Integer = rng.[Next](n + 1)
                Dim value As T = list(k)
                list(k) = list(n)
                list(n) = value
            End While
        End Sub
    End Class

    Y para usarlo harías 

    Dim products = listview.Items.ToList()
    products.Shuffle()


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Marcado como respuesta jhon fonttz jueves, 15 de noviembre de 2018 16:28
    lunes, 12 de noviembre de 2018 19:34
  • Otra forma sería ordenar por LINQ y asignar la lista resultante al Listview

    Dim rnd As Random = New Random()
    Dim randomizedList = From item In listbox.Items Order By rnd.[Next]() Select item


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Marcado como respuesta jhon fonttz jueves, 15 de noviembre de 2018 16:30
    lunes, 12 de noviembre de 2018 19:35

Todas las respuestas

  • Hola  jhon fonttz

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te recomiendo ingresar al siguiente enlace (en inglés) donde se expone un caso similar al que presentas y puedas encontrar una posible solución.

    https://social.msdn.microsoft.com/Forums/en-US/a472d289-f15f-408c-bc32-d6c30703a39b/shuffling-items-in-a-listview?forum=Vsexpressvb

    Gracias por usar los foros de MSDN.

    Pablo Rubio
     ____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    • Marcado como respuesta jhon fonttz jueves, 15 de noviembre de 2018 16:27
    lunes, 12 de noviembre de 2018 17:55
  • Hola puedes hacer algo asi

    Private Shared rng As Random = New Random()
    
        <Extension()>
        Public Shared Sub Shuffle(Of T)(ByVal list As IList(Of T))
            Dim n As Integer = list.Count
    
            While n > 1
                n -= 1
                Dim k As Integer = rng.[Next](n + 1)
                Dim value As T = list(k)
                list(k) = list(n)
                list(n) = value
            End While
        End Sub
    End Class

    Y para usarlo harías 

    Dim products = listview.Items.ToList()
    products.Shuffle()


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Marcado como respuesta jhon fonttz jueves, 15 de noviembre de 2018 16:28
    lunes, 12 de noviembre de 2018 19:34
  • Otra forma sería ordenar por LINQ y asignar la lista resultante al Listview

    Dim rnd As Random = New Random()
    Dim randomizedList = From item In listbox.Items Order By rnd.[Next]() Select item


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Marcado como respuesta jhon fonttz jueves, 15 de noviembre de 2018 16:30
    lunes, 12 de noviembre de 2018 19:35