Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - luis456

#271
jejej de nuevo al ataque

ahora funciona y ya he probado a modificar algunas cosillas como por ejemplo el orden en

Código (vbnet) [Seleccionar]
  .First = items(0),
.Second = items(2)


lo que no entiendo es como hacer que en ves de dos,me muestre combinaciones de mas de dos números por ejemplo  " 02 09 10 15 " , ahora solo me saca en la ventana " 02 09 " y en otra  " 10 15 " y en otra  "21 28 "  etc. en una sola ventana,
#272

1) Por cierto, no quiero ver marranadas, ya me estás separando 'Luislibrary' de la Class 'Form1', crea un archivo de Class individual en el projecto y ahí copias y pegas el namespace 'LuisLibrary' y vas añadiendo tus distintas "utilidades" para usarlas en el futuro.


estoy en pruebas ya me haré mi archivo de rutinas :)

Saludos.
#273
Me voy a suicidar :(


Un valor de tipo 'System.Collections.Generic.List(Of WindowsApplication1.LuisLibrary.Group)' no se puede convertir en 'System.Collections.Generic.List(Of System.Text.RegularExpressions.Group)'.

Un valor de tipo 'System.Text.RegularExpressions.Group' no se puede convertir en 'WindowsApplication1.LuisLibrary.Group'.




Código (vbnet) [Seleccionar]
Imports System.Text.RegularExpressions
Namespace LuisLibrary

    Friend NotInheritable Class Group

        Protected Friend Property First As Integer = 0I
        Protected Friend Property Second As Integer = 0I

    End Class

End Namespace
Public Class Form1
   
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim values As New List(Of Integer) From
    {
        2, 8, 9, 10, 11, 15, 21, 22, 28, 50, 55, 58
    }

        Dim groupedValues As List(Of Group) =
            (From i As Integer In values
            Group By i.ToString("00").First
            Into items = Group Select New LuisLibrary.Group With {
                .First = items(0),
                .Second = items(1)
            }).ToList

        For Each g As LuisLibrary.Group In groupedValues

            Dim str As String = String.Format("{0:00}, {1:00}",
                                              g.First,
                                              g.Second)

            MessageBox.Show(str)

        Next g
    End Sub
End Class


#274
me explicas este error ? cada dia hay algo jejeje ,estoy probando este codigo y me dice:

" El tipo 'LuisLibrary.Group' no está definido "

Código (vbnet) [Seleccionar]
Imports System.Text.RegularExpressions

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim values As New List(Of Integer) From
    {
        2, 8, 9, 10, 11, 15, 21, 22, 28, 50, 55, 58
    }

        Dim groupedValues As List(Of Group) =
            (From i As Integer In values
            Group By i.ToString("00").First
            Into items = Group Select New LuisLibrary.Group With {
                .First = items(0),
                .Second = items(1)
            }).ToList

        For Each g As LuisLibrary.Group In groupedValues

            Dim str As String = String.Format("{0:00}, {1:00}",
                                              g.First,
                                              g.Second)

            MessageBox.Show(str)

        Next g
    End Sub
End Class
#275
Cita de: Eleкtro en 23 Octubre 2014, 17:34 PM
Luis, estoy muy harto de verte cometer el mismo fallo en el mismo punto crítico después de habertelo explicado y resuelto decenas de veces ya :-/

¿Por qué no practicas un poco todo lo referente a colecciones genéricas y LINQ?.

Código (vbnet) [Seleccionar]
   ' Join Enumerables
   ' ( By Elektro )
   '
   ' Examples :
   '
   ' Dim listA As New List(Of String) From {"a", "b"}
   ' Dim listB As New List(Of String) From {"c", "d"}
   ' Dim newlist As List(Of String) = JoinEnumerables(Of String)({listA, listB}).ToList ' Result: {"a", "b", "c", "d"}

   ''' <summary>
   ''' Joins the specified <see cref="IEnumerable"/> colecctions into a single <see cref="IEnumerable"/>.
   ''' </summary>
   ''' <typeparam name="T"></typeparam>
   ''' <param name="enumerables">The <see cref="IEnumerable"/> collections to join.</param>
   ''' <returns>IEnumerable(Of T).</returns>
   Friend Function JoinEnumerables(Of T)(ByVal enumerables As IEnumerable(Of T)()) As IEnumerable(Of T)

       Return enumerables.SelectMany(Function(enumerable As IEnumerable(Of T)) enumerable)

   End Function


Código (vbnet) [Seleccionar]
       Dim joinedGroups As List(Of Integer) =
           JoinEnumerables(Of Integer)(
                          (From group As List(Of Integer) In groupedValues
                           Select group).ToArray
           ).ToList

       ListBox1.Items.Add(String.Join(", ", joinedGroups))


Espero que eso te ayude a entender un poco más, aunque se que por el momento no vas a entender el parámetro de Type (T), pero bueno xD.

Saludos


Como ya sabes voy a pasos, si me dices que hace cada cosa lo entendería mejor :) ya que tengo que ir a preguntar por todo jejej y lo que hago es enredarme mas

luis




#276
hola

estoy probando con este codigo y cuando lo ejecuto solo me muestra en el listbox

"coleccion"  ? hay que hacer mas cosas, la variabe que contiene los numeros

es " resultss" 


Código (vbnet) [Seleccionar]
  Dim groupedValues As List(Of List(Of Integer)) =
    (From i As Integer In Resultss
     Group By i.ToString("00").First Into items = Group
     Select New List(Of Integer) From {items(0), items(1)}
     ).ToList

        ListBox3.Items.AddRange(groupedValues.Cast(Of Object).ToArray)
#277
Cita de: Eleкtro en 22 Octubre 2014, 18:53 PM
Te explicaré la query de LINQ del primer ejemplo:

1) Creo grupos de los números según su primer dígito (habiendo añadido temporalmente un "0" a los números del 1 al 9), es decir, grupo de números que empiezan por 0, o por 1, 2, 3, etc.
   Cada grupo contiene todos los números de la colección que empiecen por ese primer dígito de la regla. por ejemplo el grupo del "0" contendrá { 02, 08, 09 } (el cero es imaginario)

2) Asigno los grupos a la variable/propiedad 'items'.

3) Instancio un objeto 'LuisLibrary.Group' por cada grupo, al que le asigno el primer número del grupo (items(0)) a la propiedad 'First', y el segundo número del grupo (items(1)) a la propiedad 'Second'.

4) Devuelvo una Lista de los objetos 'LuisLibrary.Group'.

Saludos



O sea que los tres van juntos en el mismo codigo ?

luis

#278
Cita de: Eleкtro en 22 Octubre 2014, 16:44 PM
Código (vbnet) [Seleccionar]
Namespace LuisLibrary

Friend NotInheritable Class Group

   Protected Friend Property First As Integer = 0I
   Protected Friend Property Second As Integer = 0I

End Class

End Namespace


Dim values As New List(Of Integer) From
   {
       2, 8, 9, 10, 11, 15, 21, 22, 28, 50, 55, 58
   }

Dim groupedValues As List(Of LuisLibrary.Group) =
   (From i As Integer In values
   Group By i.ToString("00").First
   Into items = Group Select New LuisLibrary.Group With {
       .First = items(0),
       .Second = items(1)
   }).ToList

For Each g As LuisLibrary.Group In groupedValues

   Dim str As String = String.Format("{0}, {1}",
                                     g.First.ToString("00"),
                                     g.Second.ToString("00"))

   MessageBox.Show(str)

Next g


...O bien:
Código (vbnet) [Seleccionar]
' Type anónimo
Dim groupedValues =
   From i As Integer In values
   Group By i.ToString("00").First
   Into items = Group Select New With {
      Key .First = items(0),
      Key .Second = items(1)
   }


...O también:
Código (vbnet) [Seleccionar]
Dim groupedValues As List(Of List(Of Integer)) =
   (From i As Integer In values
    Group By i.ToString("00").First Into items = Group
    Select New List(Of Integer) From {items(0), items(1)}
    ).ToList


Saludos.


AAAAA Me tendre que ahorcar para entender esto ( es broma me pongo en ello)


Luis

#279
Formar combinaciones por Subrangos


Bueno ya resuelto un problema :) ahora se me ocurre formar estas combiaciones dentro de subrangos

ya tenemos la variable " constantValues" con x numeros como siempre ocurre con mis ideas locas :)

siempre trabajo con el rango de 00 al 99 estas se subdividirian en :

subrangos

00 al 09
10 al 19
20 al 29
30 al 39
40 al 49
50 al 59
60 al 69
70 al 79
80 al 89
90 al 99

La pregunta como haria que las combinaciones no tomen mas de dos numeros de un mismo subrango ?

ejemplo

02 08 10 15 21 28 50 58... ETC


Codigo funcionando :)


Código (vbnet) [Seleccionar]
constantValues.AddRange(Resultss.ToArray()) <-----variable con numeros con los que formamos las combinaciones


        Dim combinations As New List(Of List(Of Integer))
        Dim length As Integer = 7
        Dim skipStart As Integer = 0


        Do Until skipStart = (constantValues.Count - length)

            Dim values As List(Of Integer) = constantValues.GetRange(skipStart, length)
            Dim count As Integer = 0

            Do Until count = (constantValues.Count - length - skipStart)

                combinations.Add(values.Concat(constantValues.Skip(skipStart + length + count).Take(1)).ToList)

                Debug.WriteLine(String.Join(", ", values.Concat(constantValues.Skip(skipStart + length + count).Take(1)).ToArray))

                count += 1

            Loop ' count = (constantValues.Count - length)

            skipStart += 1


        Loop ' skipStart = (constantValues.Count - length)
        combinations.ForEach(Sub(combination As List(Of Integer))
                                 ListBox2.Items.Add(String.Join(", ", From value As Integer In combination
                                                                      Select If(value.ToString.Length = 1I,
                                                                                value.ToString.Insert(0I, "0"c),
                                                                                value.ToString)))
                             End Sub)

        ListBox2.Sorted = True




#280
Yaaaaaaa   ;D ;D ;D ;D ;D ;D ;D ;D


Código (vbnet) [Seleccionar]
constantValues.AddRange(Resultss.ToArray())


me tenia confundido lo de "list"
luis