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!!!