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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


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


Desconectado Desconectado

Mensajes: 548



Ver Perfil
Hola otro de mis rollos con variables
« en: 9 Julio 2015, 15:30 pm »

Hola a todos

como ya mas o menos me defiendo jejej ya casi no pregunto :) pero no se como hacer que este codigo
em ves de empezar con split(0) empieze con el split(1) me explico

tengo un arreglo de x numeros (1, 2, 3, 4, 5) y si quiero hacer una union o concatenacion de ese arreglo por ejemplo ( 1 2 3 )  tengo que tomar split(0),split(1),split(2)

cuando lo que yo quiero es split(1),split(2),split(3) y no tomar en cuenta el split(0),he provado con Skip(1) pero no me vale ya que me salta el numero inicial


un poco mas claro :)

arreglo
1, 2, 3, 4, 5

asi es ahora

1 = split(0)
2 = split(1)
3 = split(2)

nesecito de esta forma

1 = split(1)
2 = split(2)
3 = split(3)


Código
  1. Dim arregloSumasa() As Integer = {1, 2, 3, 4, 5}
  2.  
  3.  
  4.   Dim split As IEnumerable(Of IEnumerable(Of Integer)) =
  5.    SplitIntoParts(collection:=arregloSumasa, amount:=1, fillEmpty:=True)
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14. Public Shared Function SplitIntoParts(Of T)(ByVal collection As IEnumerable(Of T),
  15.                                              ByVal amount As Integer,
  16.                                              ByVal fillEmpty As Boolean) As IEnumerable(Of IEnumerable(Of T))
  17.  
  18.        Return From index As Integer In Enumerable.Range(0, CInt(Math.Ceiling(collection.Count() / amount)))
  19.               Select If(Not fillEmpty,
  20.                         collection.Skip(index * amount).Take(amount),
  21.                         If((collection.Count() - (index * amount)) >= amount,
  22.                            collection.Skip(index * amount).Take(amount),
  23.                            collection.Skip(index * amount).Take(amount).
  24.                                                            Concat(From i As Integer
  25.                                                                   In Enumerable.Range(0, amount - (collection.Count() - (index * amount)))
  26.                                                                   Select DirectCast(Nothing, T))))
  27.  
  28.    End Function



Saludos

Luis



« Última modificación: 9 Julio 2015, 17:44 pm por luis456 » En línea

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

Mensajes: 9.788



Ver Perfil
Re: Hola otro de mis rollos con variables
« Respuesta #1 en: 9 Julio 2015, 17:02 pm »

Fíjate en el nuevo parámetro que le añadí:

Código
  1.  Public Shared Function SplitIntoParts(Of T)(ByVal collection As IEnumerable(Of T),
  2.                                              ByVal amount As Integer,
  3.                                              ByVal fillEmpty As Boolean,
  4.                                              Optional ByVal add As Integer = 0,
  5.                                              Optional ByVal skip As Integer = 0
  6.                                             ) As IEnumerable(Of IEnumerable(Of T))
  7.  
  8.      Dim emptyAdded As IEnumerable(Of IEnumerable(Of T)) = Enumerable.Repeat({DirectCast(Nothing, T)}, add)
  9.  
  10.      Return emptyAdded.Concat(
  11.             From index As Integer In Enumerable.Range(0, CInt(Math.Ceiling(collection.Count() / amount)))
  12.             Select If(Not fillEmpty,
  13.                       collection.Skip(index * amount).Take(amount),
  14.                       If((collection.Count() - (index * amount)) >= amount,
  15.                          collection.Skip(index * amount).Take(amount),
  16.                          collection.Skip(index * amount).Take(amount).
  17.                                                          Concat(From i As Integer
  18.                                                                 In Enumerable.Range(0, amount - (collection.Count() - (index * amount)))
  19.                                                                 Select DirectCast(Nothing, T))))
  20.             ).Skip(skip)
  21.  
  22.  End Function

De esa manera, si le asignas un valor de add:=1 al llamar a la función, le añadiras esa cantidad especificada de IEnumerable(Of T) (vacías) al pricipio de la colección, y, aparte, si le asignas un valor de skip:=X, la función devolverá el IEnumerable(Of IEnumerable(Of T)) ignorando la cantidad especificada de elementos de tipo IEnumerable(Of T) al principio de la colección.

Saludos


« Última modificación: 9 Julio 2015, 17:22 pm por Eleкtro » En línea

luis456


Desconectado Desconectado

Mensajes: 548



Ver Perfil
Re: Hola otro de mis rollos con variables
« Respuesta #2 en: 9 Julio 2015, 17:43 pm »

Fíjate en el nuevo parámetro que le añadí:

Código
  1.  Public Shared Function SplitIntoParts(Of T)(ByVal collection As IEnumerable(Of T),
  2.                                              ByVal amount As Integer,
  3.                                              ByVal fillEmpty As Boolean,
  4.                                              Optional ByVal add As Integer = 0,
  5.                                              Optional ByVal skip As Integer = 0
  6.                                             ) As IEnumerable(Of IEnumerable(Of T))
  7.  
  8.      Dim emptyAdded As IEnumerable(Of IEnumerable(Of T)) = Enumerable.Repeat({DirectCast(Nothing, T)}, add)
  9.  
  10.      Return emptyAdded.Concat(
  11.             From index As Integer In Enumerable.Range(0, CInt(Math.Ceiling(collection.Count() / amount)))
  12.             Select If(Not fillEmpty,
  13.                       collection.Skip(index * amount).Take(amount),
  14.                       If((collection.Count() - (index * amount)) >= amount,
  15.                          collection.Skip(index * amount).Take(amount),
  16.                          collection.Skip(index * amount).Take(amount).
  17.                                                          Concat(From i As Integer
  18.                                                                 In Enumerable.Range(0, amount - (collection.Count() - (index * amount)))
  19.                                                                 Select DirectCast(Nothing, T))))
  20.             ).Skip(skip)
  21.  
  22.  End Function

De esa manera, si le asignas un valor de add:=1 al llamar a la función, le añadiras esa cantidad especificada de IEnumerable(Of T) (vacías) al pricipio de la colección, y, aparte, si le asignas un valor de skip:=X, la función devolverá el IEnumerable(Of IEnumerable(Of T)) ignorando la cantidad especificada de elementos de tipo IEnumerable(Of T) al principio de la colección.

Saludos


Gracias Elektro

Funciona de maravilla jejejej lastima que ahora no tenga tantas preguntas JAJAJJA siempre que iba a  mirar tus respuestas estaba acojonado por tus reaccion (regaños)  jejeje de verdad que funcionaron, ya que solo por no leerlos jejej me buscaba la vida y
para los que empiezan con este lenguaje tienen buen profe jejej

De nuevo gracias

Luis










En línea

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

Mensajes: 9.788



Ver Perfil
Re: Hola otro de mis rollos con variables
« Respuesta #3 en: 9 Julio 2015, 18:19 pm »

siempre que iba a  mirar tus respuestas estaba acojonado por tus reaccion (regaños)  jejeje de verdad que funcionaron, ya que solo por no leerlos jejej me buscaba la vida y para los que empiezan con este lenguaje tienen buen profe jejej

No se yo... si en la piel de profesor consigo que mis ""alumnos"" huyan entonces no seré tan buen profe xD.

¿Qué van a pensar de mi los demás?, reconozcámoslo, no te he "regañado" tanto... jaja, solo fui lo necesariamente arisco o estricto para que supieras desenvolverte por ti mismo para resolver cosas básicas.

Ahora escribes los posts formulando preguntas publicando un ejemplo del resultado que obtienes y el que deseas obtener, y no ha sido necesario pedirte el código...
...aunque lo hagas solo para que no te "regañe" xD no lo se, pero es un cambio positivo en la calidad de la información de tus post.

Saludos!
« Última modificación: 9 Julio 2015, 18:21 pm por Eleкtro » En línea

luis456


Desconectado Desconectado

Mensajes: 548



Ver Perfil
Re: Hola otro de mis rollos con variables
« Respuesta #4 en: 9 Julio 2015, 19:03 pm »

 :silbar: :silbar: :silbar: :silbar: :silbar: :silbar:

Claro que tu ayuda me sirvio de mucho y espero que a muchos mas  ;-)  ;-) siempre aunque que no postee, estoy dando vueltas por estos lares jejejje



saludos
Luis
En línea

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

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines