De momento estoy utilizando una lista para almacenar una parte de mis datos, y funciona perfectamente en este formato:
Item
----------------
Joe Bloggs
George Forman
Peter Pan
Ahora, me gustaría añadir otra línea a esta lista, para que funcione así:
NAME EMAIL
------------------------------------------------------
Joe Bloggs [email protected]
George Forman [email protected]
Peter Pan [email protected]
He probado a utilizar este código para crear una lista dentro de otra lista, y este código se utiliza en otro método en un bucle foreach:
// Where List is instantiated
List<List<string>> list2d = new List<List<string>>
...
// Where DataGrid instance is given the list
dg.DataSource = list2d;
dg.DataBind();
...
// In another method, where all people add their names and emails, then are added
// to the two-dimensional list
foreach (People p in ppl.results) {
list.Add(results.name);
list.Add(results.email);
list2d.Add(list);
}
Cuando ejecuto esto, obtengo este resultado:
Capacity Count
----------------
16 16
16 16
16 16
... ...
¿Dónde me estoy equivocando aquí. ¿Cómo puedo obtener el resultado que deseo con el código que estoy usando ahora?
¿De dónde proceden los resultados variables?
De este bloque:
foreach (People p in ppl.results) {
list.Add(results.name);
list.Add(results.email);
list2d.Add(list);
}
Probablemente debería leerse más como:
foreach (People p in ppl.results) {
var list = new List<string>();
list.Add(p.name);
list.Add(p.email);
list2d.Add(list);
}
Por favor, muestre más de su código.
Si ese último trozo de código declara e inicializa la variable list
fuera del bucle básicamente estás reutilizando el mismo objeto lista, añadiendo así todo en una sola lista.
Muestra también dónde entran en juego capacidad
y contador
, ¿cómo has obtenido esos valores?