elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Problema de ordenamiento
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema de ordenamiento  (Leído 4,011 veces)
luis456


Desconectado Desconectado

Mensajes: 551



Ver Perfil
Problema de ordenamiento
« en: 11 Marzo 2015, 14:11 pm »

He probado y reprobado ordenar la salida en este codigo de menor a mayor y siempre me da error en ejecucion probando todas las variables y probando en diseño del listbox en false o true y me sigue fallando.

Código
  1. Dim Re As New Random
  2. Dim Result22aa55e As IEnumerable(Of Integer) =
  3.              (
  4.                  (Result1.Concat(Result2).Concat(Result3).
  5.            Distinct.
  6.            Select(Function(Value As Integer)
  7.                       Return If(Value < MAX, Value, Rand.Next(0, MAX))
  8.                   End Function))
  9.         )
  10.  
  11.        Dim selecctedValues23aa As IEnumerable(Of Integer) = Result22aa55e.Take(11)
  12.  
  13.        '  Array.Sort(selecctedValues23aa)
  14.        ' ListBox3.Sorted = True
  15.  
  16.      Me.ListBox3.Items.AddRange(selecctedValues23aa.Cast(Of Object).ToArray)  

el code funciona bien pero me muestra los numeros desordenados

Luis



« Última modificación: 13 Marzo 2015, 11:21 am por luis456 » En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Problema de ordenamiento
« Respuesta #1 en: 11 Marzo 2015, 14:29 pm »

Utilizando las extensiones LINQ:
IEnumerable.OrderBy

(Lee el ejemplo en Vb.Net que hay en esa misma página)

Saludos!


En línea



luis456


Desconectado Desconectado

Mensajes: 551



Ver Perfil
Re: Problema de ordenamiento
« Respuesta #2 en: 11 Marzo 2015, 14:42 pm »

Utilizando las extensiones LINQ:
IEnumerable.OrderBy

(Lee el ejemplo en Vb.Net que hay en esa misma página)

Saludos!

Te refieres a esta cosa :)

Código
  1. Structure Pet
  2.        Public Name As String
  3.        Public Age As Integer
  4.    End Structure
  5.  
  6.    Sub OrderByEx1()
  7.        ' Create an array of Pet objects.
  8.        Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8}, _
  9.                             New Pet With {.Name = "Boots", .Age = 4}, _
  10.                             New Pet With {.Name = "Whiskers", .Age = 1}}
  11.  
  12.        ' Order the Pet objects by their Age property.
  13.        Dim query As IEnumerable(Of Pet) = _
  14.            pets.OrderBy(Function(pet) pet.Age)
  15.  
  16.        Dim output As New System.Text.StringBuilder
  17.        For Each pt As Pet In query
  18.            output.AppendLine(pt.Name & " - " & pt.Age)
  19.        Next
  20.  
  21.        ' Display the output.
  22.        MsgBox(output.ToString())
  23.    End Sub
  24.  
  25.    ' This code produces the following output:
  26.    '
  27.    ' Whiskers - 1
  28.    ' Boots - 4
  29.    ' Barley - 8

luis



En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Problema de ordenamiento
« Respuesta #3 en: 11 Marzo 2015, 14:44 pm »

Te refieres a esta cosa :)

Si, fíjate bien:
Cita de: MSDN
Código
  1. Structure Pet
  2.        Public Name As String
  3.        Public Age As Integer
  4.    End Structure
  5.  
  6.    Sub OrderByEx1()
  7.        ' Create an array of Pet objects.
  8.        Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8}, _
  9.                             New Pet With {.Name = "Boots", .Age = 4}, _
  10.                             New Pet With {.Name = "Whiskers", .Age = 1}}
  11.  
  12.        ' Order the Pet objects by their Age property.
  13.        Dim query As IEnumerable(Of Pet) = _
  14.            pets.OrderBy(Function(pet) pet.Age)
  15.  
  16.        Dim output As New System.Text.StringBuilder
  17.        For Each pt As Pet In query
  18.            output.AppendLine(pt.Name & " - " & pt.Age)
  19.        Next
  20.  
  21.        ' Display the output.
  22.        MsgBox(output.ToString())
  23.    End Sub
  24.  
  25.    ' This code produces the following output:
  26.    '
  27.    ' Whiskers - 1
  28.    ' Boots - 4
  29.    ' Barley - 8

Lo suyo es que entiendas esa "cosa" a la que te estás refiriendo, o al menos su utilización.

Saludos
En línea



luis456


Desconectado Desconectado

Mensajes: 551



Ver Perfil
Re: Problema de ordenamiento
« Respuesta #4 en: 11 Marzo 2015, 15:06 pm »

Si, fíjate bien:
Lo suyo es que entiendas esa "cosa" a la que te estás refiriendo, o al menos su utilización.

Saludos

Jejeje pues npi por ahora y te cuento tendría que hacerlo 20 veces que son las rutinas que tengo en el codigo la que puse arriba, pensaba que con una cosa corta lo podria arreglar jejje

Luis
En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Problema de ordenamiento
« Respuesta #5 en: 11 Marzo 2015, 15:16 pm »

pues npi por ahora

Pues lo tienes en bandeja, un ejemplo bien específico de MSN.

¿Qué es lo que no entiendes exactamente?, aunque ya me imagio que será... todo o casi todo...

Estás intentano desarrollar una aplicación que requiere el uso de LINQ, o en su defecto Loops (búcles), entonces practica y aprende lo necesario antes de continuar.

Hace tiempo te mostré una descarga oficial de MSDN que contenia 101 ejemplos de la utilización de LINQ en VB.Net... ahí también tienes ejemplos para ordenar una colección.

...Pero si simplemente los copias sin enterarte de lo que haces, luego estarás en las mismas.

PD: No te desgloso la llamada a .OrderBy en el código citado por que te tendría que explicar sobre expresiones Lambda y eso te confundiría aun más, si lo prefieres puedes intentar algo más básico como un For, o simplemente utiliza el método 'Sort' convirtiendo la secuencia a una Lista (Enumerable.ToList).

Ánimo, ¡es algo fácil!

Saludos!
« Última modificación: 11 Marzo 2015, 19:20 pm por Eleкtro » En línea



luis456


Desconectado Desconectado

Mensajes: 551



Ver Perfil
Re: Problema de ordenamiento
« Respuesta #6 en: 13 Marzo 2015, 10:13 am »

Listo ya funciona tarde unos dias porque estaba en otras cosas tenias razón Elektro fue fácil
ya me estoy metiendo de lleno en linq: hasta me parece facil jejejej

Código
  1. Dim Re As New Random
  2.        Dim Result22aa55e As IEnumerable(Of Integer) =
  3.              (
  4.                  (Result1.Concat(Result2).Concat(Result3).
  5.            Distinct.
  6.            Select(Function(Value As Integer)
  7.                       Return If(Value < MAX, Value, Rand.Next(25, MAX))
  8.                   End Function))
  9.         )
  10.        Dim selecctedValues23aa As IEnumerable(Of Integer) = Result22aa55e.Take(11)
  11.        Dim liste As List(Of Integer) = selecctedValues23aa.ToList
  12.        liste.Sort()
  13.        ListBox3.Items.AddRange(liste.Cast(Of Object).ToArray)  

Hasta la siguiente pregunta :)

Luis


En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Problema de ordenamiento
« Respuesta #7 en: 13 Marzo 2015, 14:53 pm »

Pero lo complicas demasiado, en realidad no tiene más misterio que utilizar la clausula 'Order By' ( o la extensión '.OrderBy' ) cómo te sugerí al principio.

Así:
Código
  1. Dim selecctedValues23aa As IEnumerable(Of Integer) =
  2.    From value As Integer In Result22aa55e
  3.    Take 11
  4.    Order By value Ascending

O así:
Código
  1. Dim selecctedValues23aa As IEnumerable(Of Integer) =
  2.    Result22aa55e.
  3.    Take(11).
  4.    OrderBy(Function(value As Integer)
  5.               Return value
  6.            End Function)

Saludos
« Última modificación: 13 Marzo 2015, 14:58 pm por Eleкtro » En línea



luis456


Desconectado Desconectado

Mensajes: 551



Ver Perfil
Re: Problema de ordenamiento
« Respuesta #8 en: 13 Marzo 2015, 15:14 pm »

Pero lo complicas demasiado, en realidad no tiene más misterio que utilizar la clausula 'Order By' ( o la extensión '.OrderBy' ) cómo te sugerí al principio.

Así:
Código
  1. Dim selecctedValues23aa As IEnumerable(Of Integer) =
  2.    From value As Integer In Result22aa55e
  3.    Take 11
  4.    Order By value Ascending

O así:
Código
  1. Dim selecctedValues23aa As IEnumerable(Of Integer) =
  2.    Result22aa55e.
  3.    Take(11).
  4.    OrderBy(Function(value As Integer)
  5.               Return value
  6.            End Function)

Saludos


Hola
Lo puse a si al principio y me dio error no me acuerdo bien pero algo como " la funcion no devuelve xxxx " no me acuerdo mas y si tuve que modificar algo ya que no me contaba " take"  y lo resolvi de esta forma y ahora va de perlas :)

Código
  1. Dim liste As List(Of Integer) = selecctedValues23aa.Take(11).ToList
  2.        liste.Sort()

Luis







En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Metodos de Ordenamiento en c#
.NET (C#, VB.NET, ASP)
alexvem 0 39,103 Último mensaje 4 Agosto 2008, 18:02 pm
por alexvem
METODOS DE ORDENAMIENTO
Programación C/C++
ANTÓN RAMIREZ 1 15,034 Último mensaje 12 Diciembre 2010, 12:53 pm
por Garfield07
Ordenamiento estructuras
Programación C/C++
programacion_c 5 3,311 Último mensaje 31 Mayo 2012, 20:05 pm
por programacion_c
Algoritmo de ordenamiento?
Programación C/C++
t4r0x 8 4,578 Último mensaje 12 Agosto 2013, 22:46 pm
por eferion
Ordenamiento de numeros problema con la salida
Programación C/C++
nolasco281 6 2,493 Último mensaje 23 Abril 2014, 03:14 am
por nolasco281
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines