os pongo en situación..
Tengo un gridview que lo voy rellenando en funcion de unas consultas pero que esta mal optimizado. Para ello me ayudo de List<List<string>> datas = new List<List<string>>()
TENGO un gridview con 3 columnas. Las dos primeras se sacan conforme a la primera consulta y sin mas son un id, un nombrre.
La 3º columna se saca en base a otra consulta que va a ser un count
PRIMERO voy recogiendo los datos y con un List <String> Y lo meto en mi aux (List<string>).
Ademas añado una columna a 0, porque luego metere ahí valores resultantes de otras dos consultas
Código:
Ahora es donde viene verdaderamente mi problema. Para rellenar bien esa 3º columna con los counts hago una consulta que me devuelve ids, y sus counts correspondientes.while (dataReader.Read()) {
List<string> aux = new List<string>();
int id = int.Parse(dataReader["id"].ToString());
string nombre = dataReader["nombre"].ToString();
aux.Add(id.ToString());
aux.Add(nombre);
aux.Add("0");
datas.Add(aux);
Actualizo mi List<List<string>> de la siguiente forma:
Código:
donde ese método es: dataReader = cmd.ExecuteReader();
//Read the data and store them in the list
while (dataReader.Read()) {
int cantCreada = int.Parse(dataReader["Creadas"].ToString());
string Referencia = dataReader["Referencia"].ToString();
SumaCantidadAReferenciaCreadas(ref datas, Referencia, cantCreada);
Código:
Por ultimo ya meto mi Datas en el gridprivate void SumaCantidadAReferenciaCreadas(ref List<List<string>> datas, string id, int cantCreada) {
foreach (List<string> list in datas) {
if (list[1].ToString() == id) {
list[4] = (int.Parse(list[4].ToString()) + cantCreada).ToString();
break;
}
}
}
Lo que quiero conseguir es una manera mucho mas eficiente de buscar esos ids con su count en mi Datas y meterlos sin hacer un recorrido de todas las listas para cada registro....
He mirado los diccionarios y asi, pero no tengo ni idea de como implantarlos. Soy bastante novato y por ahora ando aprendiendo...
Muchas gracias y un saludo!!!


