Autor
|
Tema: Problema de ordenamiento (Leído 3,994 veces)
|
luis456
Desconectado
Mensajes: 551
|
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. Dim Re As New Random Dim Result22aa55e As IEnumerable(Of Integer) = ( (Result1.Concat(Result2).Concat(Result3). Distinct. Select(Function(Value As Integer) Return If(Value < MAX, Value, Rand.Next(0, MAX)) End Function)) ) Dim selecctedValues23aa As IEnumerable(Of Integer) = Result22aa55e.Take(11) ' Array.Sort(selecctedValues23aa) ' ListBox3.Sorted = True 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
Mensajes: 9.866
|
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
Mensajes: 551
|
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 Structure Pet Public Name As String Public Age As Integer End Structure Sub OrderByEx1() ' Create an array of Pet objects. Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8}, _ New Pet With {.Name = "Boots", .Age = 4}, _ New Pet With {.Name = "Whiskers", .Age = 1}} ' Order the Pet objects by their Age property. Dim query As IEnumerable(Of Pet) = _ pets.OrderBy(Function(pet) pet.Age) Dim output As New System.Text.StringBuilder For Each pt As Pet In query output.AppendLine(pt.Name & " - " & pt.Age) Next ' Display the output. MsgBox(output.ToString()) End Sub ' This code produces the following output: ' ' Whiskers - 1 ' Boots - 4 ' Barley - 8
luis
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.866
|
Te refieres a esta cosa Si, fíjate bien: Structure Pet Public Name As String Public Age As Integer End Structure Sub OrderByEx1() ' Create an array of Pet objects. Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8}, _ New Pet With {.Name = "Boots", .Age = 4}, _ New Pet With {.Name = "Whiskers", .Age = 1}} ' Order the Pet objects by their Age property. Dim query As IEnumerable(Of Pet) = _ pets.OrderBy(Function(pet) pet.Age) Dim output As New System.Text.StringBuilder For Each pt As Pet In query output.AppendLine(pt.Name & " - " & pt.Age) Next ' Display the output. MsgBox(output.ToString()) End Sub ' This code produces the following output: ' ' Whiskers - 1 ' Boots - 4 ' 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
Mensajes: 551
|
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
Mensajes: 9.866
|
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
Mensajes: 551
|
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 Dim Re As New Random Dim Result22aa55e As IEnumerable(Of Integer) = ( (Result1.Concat(Result2).Concat(Result3). Distinct. Select(Function(Value As Integer) Return If(Value < MAX, Value, Rand.Next(25, MAX)) End Function)) ) Dim selecctedValues23aa As IEnumerable(Of Integer) = Result22aa55e.Take(11) Dim liste As List(Of Integer) = selecctedValues23aa.ToList liste.Sort() 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
Mensajes: 9.866
|
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í: Dim selecctedValues23aa As IEnumerable(Of Integer) = From value As Integer In Result22aa55e Take 11 Order By value Ascending
O así: Dim selecctedValues23aa As IEnumerable(Of Integer) = Result22aa55e. Take(11). OrderBy(Function(value As Integer) Return value End Function)
Saludos
|
|
« Última modificación: 13 Marzo 2015, 14:58 pm por Eleкtro »
|
En línea
|
|
|
|
luis456
Desconectado
Mensajes: 551
|
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í: Dim selecctedValues23aa As IEnumerable(Of Integer) = From value As Integer In Result22aa55e Take 11 Order By value Ascending
O así: Dim selecctedValues23aa As IEnumerable(Of Integer) = Result22aa55e. Take(11). OrderBy(Function(value As Integer) Return value 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 Dim liste As List(Of Integer) = selecctedValues23aa.Take(11).ToList liste.Sort()
Luis
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Metodos de Ordenamiento en c#
.NET (C#, VB.NET, ASP)
|
alexvem
|
0
|
39,087
|
4 Agosto 2008, 18:02 pm
por alexvem
|
|
|
METODOS DE ORDENAMIENTO
Programación C/C++
|
ANTÓN RAMIREZ
|
1
|
15,025
|
12 Diciembre 2010, 12:53 pm
por Garfield07
|
|
|
Ordenamiento estructuras
Programación C/C++
|
programacion_c
|
5
|
3,303
|
31 Mayo 2012, 20:05 pm
por programacion_c
|
|
|
Algoritmo de ordenamiento?
Programación C/C++
|
t4r0x
|
8
|
4,560
|
12 Agosto 2013, 22:46 pm
por eferion
|
|
|
Ordenamiento de numeros problema con la salida
Programación C/C++
|
nolasco281
|
6
|
2,491
|
23 Abril 2014, 03:14 am
por nolasco281
|
|