|
221
|
Programación / .NET (C#, VB.NET, ASP) / Re: Otra de las mias jejje traspasar datos condicionados de una variable a otras
|
en: 8 Marzo 2015, 16:22 pm
|
ahá, ¿y que relacion hay entre el patrón que sigue "a", y el que sigue "b"?.
Ninguno puse eso sin tomar en cuenta que era correlativo jejje se supone que es a+c y como son muchos numeros que da la funcion son muchas las variables y lo puse corto y seria como esto A + C A + D B + C B + D C + D o mas cuando lo termine (no pongo todos ) 1 .- ( A + C + D ) 2 .- ( A + B + D ) 3 .- ( A + B + E ) 4 .- ( A + B + F ) 5 .- ( A + B + G ) 6 .- ( A + B + H ) 7 .- ( A + C + D ) 8 .- ( A + C + E ) 9 .- ( A + C + F ) 10 .- ( A + C + G ) 11 .- ( A + C + H ) 12 .- ( A + D + E ) 13 .- ( A + D + F ) 14 .- ( A + D + G ) 15 .- ( A + D + H ) 16 .- ( A + E + F ) 17 .- ( A + E + G ) 18 .- ( A + E + H ) 19 .- ( A + F + G ) 20 .- ( A + F + H ) 21 .- ( A + G + H ) 22 .- ( B + C + D ) 23 .- ( B + C + E ) 24 .- ( B + C + F ) 25 .- ( B + C + G ) 26 .- ( B + C + H ) 27 .- ( B + D + E ) 28 .- ( B + D + F ) 29 .- ( B + D + G ) 30 .- ( B + D + H ) 31 .- ( B + E + F ) 32 .- ( B + E + G ) 33 .- ( B + E + H ) 34 .- ( B + F + G ) 35 .- ( B + F + H ) 36 .- ( B + G + H ) 37 .- ( C + D + E ) 38 .- ( C + D + F ) 39 .- ( C + D + G ) 40 .- ( C + D + H ) 41 .- ( C + E + F ) 42 .- ( C + E + G ) 43 .- ( C + E + H ) 44 .- ( C + F + G ) 45 .- ( C + F + H ) 46 .- ( C + G + H ) 47 .- ( D + E + F ) 48 .- ( D + E + G ) 49 .- ( D + E + H ) 50 .- ( D + F + G ) 51 .- ( D + F + H ) 52 .- ( D + G + H ) 53 .- ( E + F + G ) 54 .- ( E + F + H ) 55 .- ( E + G + H ) 56 .- ( F + G + H ) etec etec etec Luis
|
|
|
222
|
Programación / .NET (C#, VB.NET, ASP) / Re: Otra de las mias jejje traspasar datos condicionados de una variable a otras
|
en: 8 Marzo 2015, 14:45 pm
|
Jo cada ves me vuelvo mas loco , te paso lo que estoy tratando de hacer de una forma que me sea mas facil Dim numbers() As Integer = {0, 1, 2, 3, 4, 5, 6, 10, 15, 20, 25, 30, 35, 45} <---estos numeros cambian o son mas o son menos cantidad quiero poner esos numeros en estas variables ?? a= 1 2 3 4 b= 3 5 10 15 c= 20 25 30 35 Dim Result As IEnumerable(Of Integer) = (a.Concat(b.Concat(c))). <---------------para concatenar a +b c+a etc cada ves que quiera Distinct. ListBox4.Items.AddRange(Resul.Cast(Of Object).ToArray)
Gracias Luis
|
|
|
223
|
Programación / .NET (C#, VB.NET, ASP) / Re: Otra de las mias jejje traspasar datos condicionados de una variable a otras
|
en: 8 Marzo 2015, 12:50 pm
|
Tienes la colección estática y principal, con nombre ' mainCol'. ' La colección principal. Dim mainCol As IEnumerable(Of Integer) = { 1, 2, 3, 4, 5, 6, 10, 15, 20, 22, 24, 25, 30, 35, 45, 47, 50, 54, 57, 58, 60, 67, 68, 69, 70, 71, 75, 77, 79, 80 }
Tienes la colección principal, dividida en una colección que contiene colecciones de 4 elementos (total: 8 sub-colecciones), con nombre ' splittedCols'. ' La colección principal, dividida en una colección que contiene colecciones de 4 elementos (total: 8 colecciones). Dim parts As Integer = 4 Dim splittedCols As IEnumerable(Of IEnumerable(Of Integer)) = From index As Integer In Enumerable.Range(0, CInt(Math.Ceiling(mainCol.Count() / parts))) Select mainCol.Skip(index * parts).Take(parts)
Y ahora, ¿que estás intentando hacer, unirla de nuevo?. (Esto sería una forma rebuscada y poco optimizada, no se me ocurre nada mejor ahora mismo usando LINQ, pero puedes optimizarlo usando un FOR corriente de toda la vida, no ForEach) ' Las 8 colecciones de 4 elementos cada una, unidas en una sola colección: Dim joinedCol As IEnumerable(Of Integer) = {} splittedCols.ToList.ForEach(Sub(col As IEnumerable(Of Integer)) joinedCol = joinedCol.Concat(col) End Sub)
ListBox1.Items.AddRange(joinedCol.Cast(Of Object)().ToArray)
PD: Intenta ser específico. Saludos! Funciona bien pero : Pregunta " Y ahora, ¿que estás intentando hacer, unirla de nuevo? " NO jejej si todavía no he logrado hacer lo que en principio quería hacer, que era dividir la colección principal en variables con cuatro números cada una para yo después con cada variable con los números asignados poder concatenar las que yo quiera entre ellas y mostrar ese resultado en un listbox variable principal con números Dim mainCol As IEnumerable(Of Integer) = { 1, 2, 3, 4, 5, 6, 10, 15, 20, 22, 24, 25, 30, 35, 45, 47, 50, 54, 57, 58, 60, 67, 68, 69, 70, 71, 75, 77, 79, 80 }
cada cuatro números se la asignamos a una variable variable1 =1 2 3 4 variable2 = 5 6 10 15 variable3 = 20 22 24 24 etec etec mostrar variable1 en listbox1 mostrar variable2 en listbox2 Gracias Elektro por tu ayuda y como me pediste mas especifico jejej Luis
|
|
|
224
|
Programación / .NET (C#, VB.NET, ASP) / Re: Otra de las mias jejje traspasar datos condicionados de una variable a otras
|
en: 8 Marzo 2015, 09:22 am
|
A ver que estoy mal ? he probado y reprobado y no me sale ' Dim collection As IEnumerable(Of Integer) = Enumerable.Range(1, 11) Dim collection() As Integer = {1, 2, 3, 4, 5, 6, 10, 15, 20, 22, 24, 25, 30, 35, 45, 47, 50, 54, 57, 58, 60, 67, 68, 69, 70, 71, 75, 77, 79, 80} Dim parts As Integer = 4 Dim result As IEnumerable(Of IEnumerable(Of Integer)) = From index As Integer In Enumerable. Range(0, CInt(Math. Ceiling(collection. Count() / parts ))) Dim dinosaurs As New List(Of Integer)(parts) ListBox5.Items.AddRange(dinosaurs.Cast(Of Object).ToArray)
Luis
|
|
|
225
|
Programación / .NET (C#, VB.NET, ASP) / Re: Otra de las mias jejje traspasar datos condicionados de una variable a otras
|
en: 7 Marzo 2015, 16:30 pm
|
Ese error ya lo sufriste anteriormente por la mimsa causa y te expliqué el motivo. Primero de nada, en el código que he citado, al método ListBox.Items.AddRange() le estás pasando la variable ' parts' que solo es un simple valor Integer, así que voy a hacer cómo que no he leido eso y vamos a suponer que al método le pasas la variable ' result', que es en realidad lo que le querrías intentar pasar, quedando así: ListBox1.Items.AddRange(result.Cast(Of Object).ToArray)
El método ListBox.Items.AddRange() espera que le pases como parámetro un array de objetos (una colección de strings por ejemplo, IEnumerable(Of String).Cast(Of Object).ToArray, o un array, New Object() {1,2,3}). Pero ' result' es una colección que contiene sub-colecciones ( IEnumerable(Of IEnumerable(Of T)) ), no es un tipo de valor que vayas a poder visualizar en el listbox, por que tienes que pasarle un array que contenga los elementos que quieras mostrar (los valores Integer), no pasarle un array que contenga más arrays. piensa, ¿qué debes hacer?, ¿debo volver a decírte lo que siempre te digo qué debes usar para resolver la mayoría de los problemas que tienes? (eso ha sido una pista), jeje. Saludos! Bueno dejando lo otro vuelvo al problema inicial por mas que miro Linq en msdn.microsoft.com no logro controlar esto lo unico que he podido hacer es mostrar los numeros jejej y revizando los codigos de elektro lo que consegui fue el ejemplo pero era para combinar codigo Dim collection As IEnumerable (Of Integer) = Enumerable. Range(1, 99) Dim parts As Integer = 4 Dim result As IEnumerable(Of IEnumerable(Of Integer)) = From index As Integer In Enumerable. Range(0, CInt(Math. Ceiling(collection. Count() / parts ))) ListBox5. Items. Add(String. Join(", ", From index As Integer In collection Select If(index.ToString.Length = 1I, index.ToString.Insert(0I, "0"c), index.ToString)))
Luis
|
|
|
226
|
Programación / .NET (C#, VB.NET, ASP) / Re: Otra de las mias jejje traspasar datos condicionados de una variable a otras
|
en: 5 Marzo 2015, 15:32 pm
|
Ese error ya lo sufriste anteriormente por la mimsa causa y te expliqué el motivo. Primero de nada, en el código que he citado, al método ListBox.Items.AddRange() le estás pasando la variable ' parts' que solo es un simple valor Integer, así que voy a hacer cómo que no he leido eso y vamos a suponer que al método le pasas la variable ' result', que es en realidad lo que le querrías intentar pasar, quedando así: ListBox1.Items.AddRange(result.Cast(Of Object).ToArray)
El método ListBox.Items.AddRange() espera que le pases como parámetro un array de objetos (una colección de strings por ejemplo, IEnumerable(Of String).Cast(Of Object).ToArray, o un array, New Object() {1,2,3}). Pero ' result' es una colección que contiene sub-colecciones ( IEnumerable(Of IEnumerable(Of T)) ), no es un tipo de valor que vayas a poder visualizar en el listbox, por que tienes que pasarle un array que contenga los elementos que quieras mostrar (los valores Integer), no pasarle un array que contenga más arrays. piensa, ¿qué debes hacer?, ¿debo volver a decírte lo que siempre te digo qué debes usar para resolver la mayoría de los problemas que tienes? (eso ha sido una pista), jeje. Saludos! Hola ya se LINQ: LINQ: LINQ: jejej no se donde esta ese código que me hiciste que es parecido a esto, lo unico que me acuerdo es que tengo que crear una nueva lista (no se si me vuelvo a equivocar jeje ) por cierto he estado estudiando lo de LINQ: y me tope con esto que se parece a lo que estuvimos haciendo la otra ves lo malo es que puedo ir creando uno por uno modificando la condiciones pero se me hace muyyy largo jejej esto es muy similar a lo que quiero hacer Codigo ' mostrar lo que quiera de dos en dos o tres en tres. Dim numbers() As Integer = {0, 1, 2, 3, 4, 5, 6, 10, 15, 20, 25, 30, 35, 45} ' Dim evensQuery = From num In numbers Where num Mod 2 = 1 Select num ListBox2.Items.AddRange(evensQuery.Cast(Of Object).ToArray)
muestra 1 3 5 15 25 35 45 Como veras salta de tres entres 1 3 5 etc pero esto solo lo hace una ves, la pregunta es como se podría hacer para que haga lo mismo (bucle imagino ) arranque con lo mismo pero desde el siguiente numero en este caso el numero 2 4 6 15 25 35 45 y aci con todos luis
|
|
|
227
|
Programación / .NET (C#, VB.NET, ASP) / Re: Otra de las mias jejje traspasar datos condicionados de una variable a otras
|
en: 5 Marzo 2015, 11:55 am
|
Si no he entendido mal, tienes una colección de números cómo esta: Dim collection As IEnumerable (Of Integer) = Enumerable. Range(1, 99)
Y quieres partirlo en colecciones de 4 elementos cada una: Dim parts As Integer = 4
Pues, cómo siempre te digo, usa LINQ: Dim result As IEnumerable(Of IEnumerable(Of Integer)) = From index As Integer In Enumerable. Range(0, CInt(Math. Ceiling(collection. Count() / parts )))
Saludos Bueno como soy un poco subnormal con esto, estaba modificando la función que entrega los números en variables apartes usando para limitar con " take = 4) y después concatenando las variables resultantes ???? toda una chapuza jejej Me he puesto con tu codigo pero siempre me pasa lo mismo al mostrar Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim collection As IEnumerable (Of Integer) = Enumerable. Range(1, 99) Dim parts As Integer = 4 Dim result As IEnumerable(Of IEnumerable(Of Integer)) = From index As Integer In Enumerable. Range(0, CInt(Math. Ceiling(collection. Count() / parts ))) ListBox1.Items.AddRange(parts.Cast(Of Object).ToArray) <----error como siempre End Sub
Luis
|
|
|
228
|
Programación / .NET (C#, VB.NET, ASP) / Otra de las mias jejje traspasar datos condicionados de una variable a otras
|
en: 3 Marzo 2015, 23:07 pm
|
Bueno otro de mis inventos chungos tengo una variable x2 integer que contiene x (es variable la cantidad) de numeros que contendria esta variable, ya saben el famoso 00 al 99 y quiero asignar a otras variables digamos variable lx1 los primeros cuatro numeros de la variable x2 y despues los siguientes otros cuatro numeros a otra variable lx2 y a si con todos los numeros de la variable x2 hasta acabar con todos, Espero se entienda Gracias Luis
|
|
|
229
|
Programación / .NET (C#, VB.NET, ASP) / Re: Limitar resultados
|
en: 1 Marzo 2015, 05:05 am
|
No se entiende bien lo que pretendes hacer, ¿te refieres a que cuando la lista tenga por ejemplo 15 elementos, puedas tomar los 4 o 6 primeros elementos de la colección?: Dim resultss As IEnumerable(Of Integer) = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 } Dim selectedValues As IEnumerable(Of Integer) = resultss.Take(4) Me.ListBox1.Items.AddRange(selectedValues.Cast(Of Object).ToArray)
Saludos Si me sirve tu codigo no lo habia mirado bien gracias Luis
|
|
|
230
|
Programación / .NET (C#, VB.NET, ASP) / Re: Limitar resultados
|
en: 28 Febrero 2015, 19:05 pm
|
No cuando la lista tenga lo que yo predefino, es que la muestra
por ejemplo yo quiero que esta muestre solo 10 numeros tomaria de la primera variable los numeros que tiene si faltan algunos los tomaria de la segunda y sumaria hasta llegar a los 10 si falta completaria con la tercera variable pero sin pasar de 10 números
gracias por responder
luis
|
|
|
|
|
|
|