Otra mision con variables

Iniciado por luis456, 31 Marzo 2015, 15:43 PM

0 Miembros y 4 Visitantes están viendo este tema.

luis456

Hola
bueno con la funcion que me pasaste. No queda tan mal, ya que modificando ciertas cosas en mi funcion puedo hacer que no salgan los ceros :) esto funciona bien

Código (vbnet) [Seleccionar]
If values.Count < 35 Then
            values = values.Concat(Enumerable.Repeat(Of Integer)(0, (35 - values.Count)))
        End If

        MsgBox(values.Count) '35 


Lo de usar las dos variables es para poder hacer mas calculos, ya que entre los dos resultados no importa la cantidad de cada uno, sino los calculos y como unas veces una de las variables no llega a 35 produce el error, pero no se determinar cuando es que esas variables llegan o no al minimo de los 35 y solo me queda con este codigo de arriba trabajar con una sola variable pero se me ocurre que podre trabajar con las dos con el mismo codigo lo unico que tendre que aumentar el area del form jejeje


Otra cosa con la modificacion que hiciste de la funcion hay alguna pega ya que me da error en " SplitIntoParts no esta declarado " lo busco pero no veo el porque, a si que volvi a poner al otro pedazo de codigo y funciona ???

Código (vbnet) [Seleccionar]
Dim splits As IEnumerable(Of IEnumerable(Of Integer)) =
            SplitIntoParts(collection:=values, amount:=2, fillEmpty:=True)



modificacion

Código (vbnet) [Seleccionar]
Public Shared Function SplitIntoParts(Of T)(ByVal collection As IEnumerable(Of T),
                                                ByVal amount As Integer,
                                                ByVal fillEmpty As Boolean) As IEnumerable(Of IEnumerable(Of T))

        Return From index As Integer In Enumerable.Range(0, CInt(Math.Ceiling(collection.Count() / amount)))
               Select If(Not fillEmpty,
                         collection.Skip(index * amount).Take(amount),
                         If((collection.Count() - (index * amount)) >= amount,
                            collection.Skip(index * amount).Take(amount),
                            collection.Skip(index * amount).Take(amount).
                                                            Concat(From i As Integer
                                                                   In Enumerable.Range(0, amount - (collection.Count() - (index * amount)))
                                                                   Select DirectCast(Nothing, T))))
    End Function   



Hoy trabajare en esto y tratere de hacerlo funcionar con:



Código (vbnet) [Seleccionar]
If values.Count < 35 Then
            values = values.Concat(Enumerable.Repeat(Of Integer)(0, (35 - values.Count)))
        End If

        MsgBox(values.Count) '35   




Ya te contare :)

Gracias

Luis


Que tu sabiduria no sea motivo de Humillacion para los demas

luis456

Hola

si Funciona con el codigo de rellenar con ceros :)

Gracias Profe :)

Luis
Que tu sabiduria no sea motivo de Humillacion para los demas