Retroceder   Foros del Web > Programación para sitios web > .NET > win forms

Respuesta
 
Herramientas Desplegado
Antiguo 10-mar-2008, 17:41   #1 (permalink)
loquillo7 ha deshabilitado el karma
 
Fecha de Ingreso: abril-2005
Mensajes: 494
De acuerdo Using List.Contains()

Buenas foreros espero me puedan ayudar yo estoy utilizando una lista que maneja 3 propiedades (que me representarian 3 columnas por decirlo ) necesito recorrer esta lista y saber si un elemento existe, no quiero recorrerlo con un for asi q me dijeron utilize constains() pero quisera pasar por parametro solo un campo por decir (la propiedad ID) y no todo el item me dijeron implemnetar GetHashCode pero ni idea de como hacerlo espero me puedan ayudar
loquillo7 está desconectado   Responder Citando
Antiguo 10-mar-2008, 18:23   #2 (permalink)
Peterpay está en el buen camino
 
Avatar de Peterpay
 
Fecha de Ingreso: septiembre-2007
Ubicación: Mexico
Mensajes: 1.580
Enviar un mensaje por MSN a Peterpay Enviar un mensaje por Skype™ a Peterpay
Re: Using List.Contains()

pues aqui te pongo un sample pequeño


class Alumno
{

public string name;
public string id;
public string school;
}

class Alumnos : ICollection<Alumno>
{

#region ICollection<Alumno> Members

public bool Contains(Alumno item)
{
foreach (Alumno current in this)
{
if (current.Equals(item))
return true;
}
return false;
}

public bool Contains(string id)
{
foreach (Alumno current in this)
{
if (current.id.Equals(id))
return true;
}
return false;
}


#endregion
}
Peterpay está desconectado   Responder Citando
Antiguo 11-mar-2008, 08:22   #3 (permalink)
loquillo7 ha deshabilitado el karma
 
Fecha de Ingreso: abril-2005
Mensajes: 494
Re: Using List.Contains()

hola gracias amigo pero estaba viendo si se podia hacer algo asi:

List<PriorityQueueItem> mSortedList;

public List<PriorityQueueItem> List
{
get { return mSortedList; }
set { mSortedList = value; }
}


public bool Contains(PriorityQueueItem item)
{
return mSortedList.Contains(item);
}

pero no quisera pasarle por parametro el item sino como pusiste en el ejmplo el id , pero aca veo qu no se utiliza el foreach es posible realizar lo que quiero sin hacer uso del foreach es que yo verifico la data de un datatable y por cada data del datatable va entrar al foreach imaginate nose eso pareciera no muy optimo o estoy equivocado espero comentarios gracias.
loquillo7 está desconectado   Responder Citando
Antiguo 11-mar-2008, 08:39   #4 (permalink)
Peterpay está en el buen camino
 
Avatar de Peterpay
 
Fecha de Ingreso: septiembre-2007
Ubicación: Mexico
Mensajes: 1.580
Enviar un mensaje por MSN a Peterpay Enviar un mensaje por Skype™ a Peterpay
Re: Using List.Contains()

sobrecarga.

saludos peter. pero aun asi contains valida internamente por lo q tendras q hacer un for necesariamente

saludos
peter
Peterpay está desconectado   Responder Citando
Antiguo 11-mar-2008, 09:15   #5 (permalink)
loquillo7 ha deshabilitado el karma
 
Fecha de Ingreso: abril-2005
Mensajes: 494
Re: Using List.Contains()

haber te cuento amigo haber si me das una mano lo que pasa es que yo tengo una cola (en este caso una lista de datos)...

a mi cada cierto tiempo me mandan un datatable para actualizar la cola.

1) tengo que verificar que si hay datos que me trae el datatable y no existen en la cola estos se agreguen a la cola para eso recorro el datatable

foreach (DataRow row in datatable.Rows) //1er bucle
{
//verificar que no existe el dato en la cola
list.constains(row["id"]) //2do bucle
}

2) verificar que si mi cola tiene algun y el datatable ya no lo trae, entonces tengo que eliminar el dato:

foreach (PriorityQueueItem item in mPriorityQueue.List)//3er bucle de la lista
{
if (!Exists(item.id))
//4to bucle - es un bucle que recorre el datatable para verificar si el id existe

}

conclusion: tengo que hacer todos estos pasos cada cierto tiempo (cada 3 min aprox) para actualizar la cola ¿como optimizar esto? xq a primera impresion se ve muy lento ... gracias por sus ayudas y sugerencias que me seria de gran ayuda
loquillo7 está desconectado   Responder Citando
Antiguo 11-mar-2008, 09:22   #6 (permalink)
Peterpay está en el buen camino
 
Avatar de Peterpay
 
Fecha de Ingreso: septiembre-2007
Ubicación: Mexico
Mensajes: 1.580
Enviar un mensaje por MSN a Peterpay Enviar un mensaje por Skype™ a Peterpay
Re: Using List.Contains()

supongo q estas usando un dataadapter y un datatable por lo q te pregunto no sera mejor

hacer un datatable.GetChanges() y de ahi iterar por cada fila y ver su rowstate en 1 solo ciclo y si esta borrada no la agregas.


saludos
peter
Peterpay está desconectado   Responder Citando
Antiguo 11-mar-2008, 09:29   #7 (permalink)
loquillo7 ha deshabilitado el karma
 
Fecha de Ingreso: abril-2005
Mensajes: 494
Re: Using List.Contains()

Hola peter nuevamente gracias, no estoy usando dataadapter yo tengo una clase "cola" la cual es alimnetada por un datatatable pero este me es enviado de un webservice, el webservice envia el datatatable a la apliacacion... yo recupero ese datatable y lo mando por parametro a aplicacion "cola" para que lo actualize..
loquillo7 está desconectado   Responder Citando
Antiguo 11-mar-2008, 09:44   #8 (permalink)
Peterpay está en el buen camino
 
Avatar de Peterpay
 
Fecha de Ingreso: septiembre-2007
Ubicación: Mexico
Mensajes: 1.580
Enviar un mensaje por MSN a Peterpay Enviar un mensaje por Skype™ a Peterpay
Re: Using List.Contains()

puedes hacer un dataTable.GetChanges(RowState.Added); y veas q columnas se agregaron , cuales se eliminaro etc etc.

saludos
peter
Peterpay está desconectado   Responder Citando
Antiguo 11-mar-2008, 10:35   #9 (permalink)
loquillo7 ha deshabilitado el karma
 
Fecha de Ingreso: abril-2005
Mensajes: 494
Re: Using List.Contains()

tendras un pequeño codigo para ver si aplica es que no se como aplicarlo antes de la asigancion despues gracias.
loquillo7 está desconectado   Responder Citando
Antiguo 11-mar-2008, 10:44   #10 (permalink)
Peterpay está en el buen camino
 
Avatar de Peterpay
 
Fecha de Ingreso: septiembre-2007
Ubicación: Mexico
Mensajes: 1.580
Enviar un mensaje por MSN a Peterpay Enviar un mensaje por Skype™ a Peterpay
Re: Using List.Contains()

dame 1 par de horas

saludos
peter
Peterpay está desconectado   Responder Citando
Antiguo 11-mar-2008, 11:08   #11 (permalink)
loquillo7 ha deshabilitado el karma
 
Fecha de Ingreso: abril-2005
Mensajes: 494
Re: Using List.Contains()

ok gracias
loquillo7 está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 03:15.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93