|
161
|
Programación / .NET (C#, VB.NET, ASP) / De regreso con mis temas jejje ,saltar un espacio en arreglo
|
en: 21 Mayo 2015, 09:34 am
|
Hola a todos en un arreglo de numeros de x cantidad de numeros, siempre el famoso 01 al 99 yo formo grupos de numeros de 10 numeros concatenando splist o variables de dos numeros cada uno de ese arreglo de esta manera: Dim Bz1 As IEnumerable(Of Integer) = ( From Value As Integer In split(1).Concat(split(2).Concat(split(3)).Concat(split(4)).Concat(split(5))) Where (Value <= MAX AndAlso Value > 0)).Distinct Dim Sl1 As IEnumerable(Of Integer) = Bz1 Dim SM1 As List(Of Integer) = Bz1.toList SM1.Sort() Me.ListBox2.Items.AddRange((From value As Integer In SM1 Where value <> 0).Cast(Of Object).ToArray)
Bien esto funciona bien el problema que quiero resolver es que tiene correlatividad de numeros. arreglo principal ( 01 02 03 04 05 06 07 08 09 10 ....................99) este codigo muestra este resultado 01 02 03 04 05 06 07 08 09 10 Porque al ordenarse el arreglo los splits o variables enpiezan desde el principio del arreglo split(1) = 01 02 split(2) = 03 04 split(3) = 05 06 split(4) = 07 08 split(5) = 09 10 estos split los saco de esta funcion que toma los valores del arreglo principal Dim split As IEnumerable(Of IEnumerable(Of Integer)) = SplitIntoParts (collection: =alia1, amount: =2, fillEmpty: =True)
en definitiva lo que nesecito es hacer saltos de numeros intermedios de los numeros contenidos en los split ejemplo ahora es de esta forma split(1) = 01 02 split(2) = 03 04 split(3) = 05 06 split(4) = 07 08 split(5) = 09 10 ****************** y lo nesecito de esta forma split(1) = 01 03 split(2) = 02 04 split(3) = 05 07 split(4) = 06 08 split(5) = 08 10 Bueno antes de preguntar he usado take,skip sin resultados con la clausula Where no se plantear el problema claro esta que si volvemos a unir los split como estan ahora y despues, se formaria la misma combinacion pero lo puse a si para el ejemplo ya que las concatenaciones cambian de forma que haga otras numeraciones Luis
|
|
|
162
|
Programación / .NET (C#, VB.NET, ASP) / Re: Eliminar duplicados o repetidos
|
en: 1 Mayo 2015, 19:36 pm
|
es que la duda que tenia era con la logica ;( si col tiene la coleccion completa de col1,,etc era como contaria los numeros de col1 ??? bueno creo me entiendes , lo bueno es que por fin pude consultar los 100 ejemplos de linq: que me pasaste en su dia y ahora preguntare menos jejejje (espero ) vi muchas rutinas que me hacen falta Gracias Luis
|
|
|
163
|
Programación / .NET (C#, VB.NET, ASP) / Re: Eliminar duplicados o repetidos
|
en: 1 Mayo 2015, 16:35 pm
|
Hola con pistas tampoco doy porque he mirado le que hay en msd y no se como contar o mirar dentro de los col1 ,col2... que estan a su ves en el grupo cols ya que si hago esta (prueba) me cuenta es el total de col y no los que estan dentro de col1 ' eliminar registros iguales en " Lnumbers " lo solucione quitandolos del listxbo ' eliminar registros MENORES a MAX ' En este codigo deberia quedar un solo registro de los cuatro Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim col1 As IEnumerable(Of Integer) = {1, 5, 6, 7, 8, 9, 10, 11, 15, 80} Dim col2 As IEnumerable(Of Integer) = {1, 5, 6, 7, 8, 9, 10, 11, 85} Dim col3 As IEnumerable(Of Integer) = {1, 2, 8, 6, 9} Dim col4 As IEnumerable(Of Integer) = {2, 2, 3} Dim MAX As Integer = 10 Dim cols As IEnumerable(Of IEnumerable(Of String)) = From col As IEnumerable(Of Integer) In {col1, col2, col3, col4} Group By String.Join("", col).AsEnumerable Into Group Select From value As Integer In Group.First.Distinct Where Not (value = MAX) Select value.ToString(format:="0#") ListBox1.Items.AddRange((From col As IEnumerable(Of String) In cols Select String.Join(", ", col)).ToArray) '*****************************************preubas**********------------------------------------------------ Dim cuenta As Integer = cols.Count() MsgBox(cols.Count) lleva cuatro bien MsgBox(col1.Count) lleva 10 numeros bien MsgBox(col2.Count) lleva 9 mal eliminar
luis
|
|
|
164
|
Programación / .NET (C#, VB.NET, ASP) / Re: Eliminar duplicados o repetidos
|
en: 1 Mayo 2015, 07:01 am
|
Bueno si y no jejje a si es ahora como entrega los resultados 01, 05, 06, 07, 08, 09, 10 ,20 ,80, 88 01, 02, 08, 06, 09 <-----eliminar ya que tiene que tener 10 numeros 02, 03<-------------------eliminar ya que tiene que tener 10 numeros pero debe solo quedar asi , solo los registros completos que cumplan la condicion de 10 registros ( disculpas no habia contado bien jeje) 01, 05, 06, 07, 08, 09, 10,20,80,88 Dim col1 As IEnumerable(Of Integer) = {1, 5, 6, 7, 8, 9, 10, 11, 15, 80} Dim col2 As IEnumerable(Of Integer) = {1, 5, 6, 7, 8, 9, 10, 11, 85} Dim col3 As IEnumerable(Of Integer) = {1, 2, 8, 6, 9} Dim col4 As IEnumerable(Of Integer) = {2, 2, 3} Dim MAX As Integer = 10
Gracias Luis
|
|
|
165
|
Programación / .NET (C#, VB.NET, ASP) / Re: Eliminar duplicados o repetidos
|
en: 30 Abril 2015, 21:03 pm
|
Especifica claramente lo de los duplicados, dices que en este ejemplo solo debe quedar una secuencia (o eso entiendo por "registro"), ¿cual?, y ¿por qué?.
¿Quieres dscartar los valores duplicados entre cada decuencia?, ¿o quieres descartar la secuencia entera en caso de que algún valor esté repetido con los valores de otra de las secuencias?, por que ambas cosas son muy distintas.
Da más detalles
Saludos
eliminar de la lista los resultados como te muestro 01, 03, 04, 05, 06, 08<----X 01, 03, 04, 05, 06, 08 <----repite con el anterior 01, 03, 04, 05, 09, 30 01, 03, 04, 05, 30, 30 <----X 01, 03, 04, 05, 30, 40 <----repite con el anterior 01, 03, 04, 05, 30, 40 <----repite con el anterior 01, 03, 04, 06, 07 <--------no llega a la cantidad 01, 03, 04,<----------------no llega a la cantidad 01, 03, 04, 06, 08, 09 01, 03, 04, 06, 08, 27 01, 03, 04, 06, 08, 49 01, 03, 04, 06, 12<--------no llega a la cantidad es eliminar los que sean iguales claro esta dejando uno solo de los que repiten y los que no llegan a tener la cantida establecida eliminarlos. aca van dos numeros estos si eliminar ya que son iguales en todo Y dejar un solo registro 01, 03, 04, 05, 30, 40 <---- 01, 03, 04, 05, 30, 40 <----repite con el anterior estos dejar ya que son diferentes aunque sea un solo numero 01, 03, 04, 05, 30, 40 01, 03, 04, 05, 30, 80 eliminar repetidos y que no cumplan la cantida establecida que seria MAX=10
|
|
|
166
|
Programación / .NET (C#, VB.NET, ASP) / Re: Eliminar duplicados o repetidos
|
en: 30 Abril 2015, 19:18 pm
|
Bueno consegui solucionar uno de los problemas y es eliminar del listbox los repetidos pero los completos o sea los que tienen 10 registros ;( alguien se anima a mejorarlo para que no me queden a si 02 03 05 01 02 03 04 05 02 05 06 07 0 9 y me deje solo los registros completos ? Public Class Form1 ' eliminar registros iguales en " Lnumbers " lo solucione quitandolos del listxbo ' eliminar registros MENORES a MAX ' En este codigo deberia quedar un solo registro de los cuatro Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim col1 As IEnumerable(Of Integer) = {1, 5, 6, 7, 8, 9, 10, 11} Dim col2 As IEnumerable(Of Integer) = {1, 5, 6, 7, 8, 9, 10, 11} Dim col3 As IEnumerable(Of Integer) = {1, 2, 8, 6, 9} Dim col4 As IEnumerable(Of Integer) = {2, 2, 3} Dim MAX As Integer = 10 Dim Lnumbers As List(Of IEnumerable(Of Integer)) = {col1, col2, col3, col4}.ToList For Each col As IEnumerable(Of Integer) In Lnumbers ListBox1.Items.Add(String.Join(", ", From value As Integer In col Select If(value.ToString.Length = 1I, value.ToString.Insert(0I, "0"c), value.ToString))) Next col End Sub '*****************************************preubas********** Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' Le pasa el Listbox a la función MsgBox(Eliminar(ListBox1), _ MsgBoxStyle.Information, _ "Elementos duplicados en el List ") End Sub Function Eliminar(ByVal LB As ListBox) As Int32 Dim i As Int32 Dim j As Int32 Dim n As Int32 ' Recorre los items ( copara empezando _ 'desde el primero , de abajo hacia arriba) For i = 0 To LB.Items.Count - 2 For j = LB.Items.Count - 1 To i + 1 Step -1 ' verifica si es el mismo If LB.Items(i).ToString = LB.Items(j).ToString Then ' elimina el elemento indicando el índice LB.Items.RemoveAt(j) n += 1 'lleva la cuenta de los duplicados End If Next Next Return n ' retorna los eliminados End Function End Class
los ejemplos (los 100) no me aclaran nada Luis
|
|
|
167
|
Programación / .NET (C#, VB.NET, ASP) / Re: Eliminar duplicados o repetidos
|
en: 30 Abril 2015, 17:45 pm
|
AAAAAAAAAAAAAAAAAA TAMPOCO Dim products = Lnumbers Dim cat = From value In products _ Select value _ Distinct For Each n In cat ListBox2.Items.Add(String.Join(", ", From value As Integer In n Select If(value.ToString.Length = 1I, value.ToString.Insert(0I, "0"c), value.ToString))) Next
|
|
|
168
|
Programación / .NET (C#, VB.NET, ASP) / Re: Eliminar duplicados o repetidos
|
en: 30 Abril 2015, 13:27 pm
|
Bueno creo que solo naci para las tuercas trato con los ejemplos que hay en las paginas de msdn que me pasaste pero aparte que no hablo chino jeje tengo que usar el traductor que habla como indio y me enredo mas y estos ejemplos estan orientados a bases de datos y mas me enrollo jejej. Public Class Form1 ' eliminar registros iguales en " Lnumbers " ' eliminar registros MENORES a MAX ' En este codigo deberia quedar un solo registro de los cuatro Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim col1 As IEnumerable(Of Integer) = {1, 5, 6, 7, 8, 9, 10, 11} Dim col2 As IEnumerable(Of Integer) = {1, 5, 6, 7, 8, 9, 10, 11} Dim col3 As IEnumerable(Of Integer) = {1, 2, 8, 6, 9} Dim col4 As IEnumerable(Of Integer) = {2, 2, 3} Dim MAX As Integer = 10 Dim Lnumbers As List(Of IEnumerable(Of Integer)) = {col1, col2, col3, col4}.ToList For Each col As IEnumerable(Of Integer) In Lnumbers ListBox1.Items.Add(String.Join(", ", From value As Integer In col Select If(value.ToString.Length = 1I, value.ToString.Insert(0I, "0"c), value.ToString))) Next col '***********************aca me tranco Dim concatCol As IEnumerable(Of Integer) = Lnumbers Dim distinctCol As IEnumerable(Of Integer) = concatCol Dim selectCol As IEnumerable(Of Integer) = distinctCol.Select(Function(value As Integer) If value = MAX Then Return value Else Return value End If End Function) ListBox2.Items.AddRange(selectCol.Cast(Of Object).ToArray) End Sub End Class
|
|
|
169
|
Programación / .NET (C#, VB.NET, ASP) / Re: Eliminar duplicados o repetidos
|
en: 28 Abril 2015, 15:01 pm
|
"Sigo sin ver que lo hayas intentado ".No es eso es que estoy pasando unas formulas jejej y he ido de pasada, no he tenido tiempo de miralo con detenimiento ahora estoy mas urgido de pasar esas formulas que tienen que ver con la pregunta pero primero acabare pasarlas luis
|
|
|
|
|
|
|