Propiedades y listas

19/04/2010 - 11:31 por Manuel | Informe spam
Buenos dias.
Estoy preparando una clase que se conecta la tabla de una base de datos
y tiene que llenar una propiedad con los nombres de los campos de la
tabla.
Para llenar la propiedad usaría lo siguiente:
foreach (DataColumn columna in this.dtSQL.Columns)
{
//Relleno la propiedad con columna.ColumnName
}
Necesito que esta propiedad sea una lista, pero no me acabo de aclarar
de como usar una lista para enlazarla a la propiedad de una clase y que
luego esta pueda recorrerla mediante un foreach.

Agradecería que alguien me ayudara con algún ejemplo o enlace a alguna
explicación.

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
19/04/2010 - 12:31 | Informe spam
"Manuel" wrote in message
news:
Estoy preparando una clase que se conecta la tabla de una base de datos y
tiene que llenar una propiedad con los nombres de los campos de la tabla.
Para llenar la propiedad usaría lo siguiente:
foreach (DataColumn columna in this.dtSQL.Columns)
{
//Relleno la propiedad con columna.ColumnName
}
Necesito que esta propiedad sea una lista, pero no me acabo de aclarar de
como usar una lista para enlazarla a la propiedad de una clase y que luego
esta pueda recorrerla mediante un foreach.

Agradecería que alguien me ayudara con algún ejemplo o enlace a alguna
explicación.



La lista la puedes declarar como List<string>. Para llenarla, basta que
llames a su método .Add:

class MiClase
{
public List<string> ListaColumnas
{
get
{
List<string> lista = new List<string>();
foreach (DataColumn columna in this.dtSQL.Columns)
{
lista.Add(columna.ColumnName);
}
return lista;
}
}

}
Respuesta Responder a este mensaje
#2 Manuel
19/04/2010 - 18:12 | Informe spam
Alberto Poblacion a utilisé son clavier pour écrire :
"Manuel" wrote in message
news:
Estoy preparando una clase que se conecta la tabla de una base de datos y
tiene que llenar una propiedad con los nombres de los campos de la tabla.
Para llenar la propiedad usaría lo siguiente:
foreach (DataColumn columna in this.dtSQL.Columns)
{
//Relleno la propiedad con columna.ColumnName
}
Necesito que esta propiedad sea una lista, pero no me acabo de aclarar de
como usar una lista para enlazarla a la propiedad de una clase y que luego
esta pueda recorrerla mediante un foreach.

Agradecería que alguien me ayudara con algún ejemplo o enlace a alguna
explicación.



La lista la puedes declarar como List<string>. Para llenarla, basta que
llames a su método .Add:

class MiClase
{
public List<string> ListaColumnas
{
get
{
List<string> lista = new List<string>();
foreach (DataColumn columna in this.dtSQL.Columns)
{
lista.Add(columna.ColumnName);
}
return lista;
}
}

}



Gracias.
¿Y cómo quedaría entonces el set si quisiera asignar valores
manualmente a la lista ?
Respuesta Responder a este mensaje
#3 Alberto Poblacion
19/04/2010 - 19:10 | Informe spam
"Manuel" wrote in message
news:
class MiClase
{
public List<string> ListaColumnas
{
get
{
List<string> lista = new List<string>();
foreach (DataColumn columna in this.dtSQL.Columns)
{
lista.Add(columna.ColumnName);
}
return lista;
}
}

}



Gracias.
¿Y cómo quedaría entonces el set si quisiera asignar valores manualmente a
la lista ?



A la lista le puedes añadir valores sin modifcar nada en el código
anterior. Oberva que es un tipo-referencia, y por tanto la llamada a la
propiedad devuelve una referencia a la lista. A través de la referencia,
puedes llamar al método Add para añadirle valores:

MiClase mic = new MiClase();
List<string> miLista = mic.ListaColumnas;
miLista.Add("Otro Nombre");

Sin embargo, ten presente que eso no modifica el DataTable desde el que
obtuviste originalmente la lista de los nombres de las columnas de la tabla.
Si lo que quieres es crear un método para modificar DataTables, estamos
hablando ya de un tema completamente distinto. En este caso, no creo que la
implementación más adecuada sea a través de una propiedad que exponga una
simple lista de nombres de columnas.
Respuesta Responder a este mensaje
#4 Manuel
19/04/2010 - 19:26 | Informe spam
Alberto Poblacion a pensé très fort :
"Manuel" wrote in message
news:
class MiClase
{
public List<string> ListaColumnas
{
get
{
List<string> lista = new List<string>();
foreach (DataColumn columna in this.dtSQL.Columns)
{
lista.Add(columna.ColumnName);
}
return lista;
}
}

}



Gracias.
¿Y cómo quedaría entonces el set si quisiera asignar valores manualmente a
la lista ?



A la lista le puedes añadir valores sin modifcar nada en el código
anterior. Oberva que es un tipo-referencia, y por tanto la llamada a la
propiedad devuelve una referencia a la lista. A través de la referencia,
puedes llamar al método Add para añadirle valores:

MiClase mic = new MiClase();
List<string> miLista = mic.ListaColumnas;
miLista.Add("Otro Nombre");

Sin embargo, ten presente que eso no modifica el DataTable desde el que
obtuviste originalmente la lista de los nombres de las columnas de la tabla.
Si lo que quieres es crear un método para modificar DataTables, estamos
hablando ya de un tema completamente distinto. En este caso, no creo que la
implementación más adecuada sea a través de una propiedad que exponga una
simple lista de nombres de columnas.



Lo que me rondaba por la cabeza no era cambiar el DataTable sino mas
bien tener una propiedad (lista) de una clase del tipo componente, para
luego en tiempo de diseño poder seleccionar el campo concreto ya sea
para usarlo cómo indice o crear un filtro con el elemento de la lista
seleccionada.

Y ya que tenía el ejemplo un poco poder aplicarlo también a otras
cosas, como poder, hablando de otro componente, seleccionar un color,
etc ..
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida