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
Utilizando las extensiones LINQ:
IEnumerable.OrderBy (https://msdn.microsoft.com/en-us/library/vstudio/bb534966%28v=vs.100%29.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1)
(Lee el ejemplo en Vb.Net que hay en esa misma página)
Saludos!
Cita de: Eleкtro en 11 Marzo 2015, 14:29 PM
Utilizando las extensiones LINQ:
IEnumerable.OrderBy (https://msdn.microsoft.com/en-us/library/vstudio/bb534966%28v=vs.100%29.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1)
(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
Cita de: luis456 en 11 Marzo 2015, 14:42 PMTe refieres a esta cosa :)
Si, fíjate bien:
Cita de: MSDNStructure 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
Cita de: Eleкtro en 11 Marzo 2015, 14:44 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
Cita de: luis456 en 11 Marzo 2015, 15:06 PMpues 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!
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
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
Cita de: Eleкtro 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í:
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