Visual CSharp .NET - clases y list

 
Vista:
sin imagen de perfil

clases y list

Publicado por nicolas (2 intervenciones) el 19/11/2016 07:50:20
hola buenas soy nuevo en programacion y tengo un problema con las clases y list de otras clases

tengo una clase persona con los siguientes datos
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Persona
{
 
    public virtual string Nombre
    {
        get;
 
        set;
    }
 
    public virtual string ApellidoP
    {
        get;
        set;
    }
 
    public virtual List<Direccion> Direcciones
    {
        get;
        set;
    }
 
}
y la clase direeciones con estos datos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Direccion
{
 
    public virtual string Comuna
    {
        get;
 
        set;
    }
 
    public virtual string Calle
    {
        get;
        set;
    }
cuando quiero ingresar datos ocupo este codigo

1
2
3
4
5
6
7
Persona P = new Persona();
 
P.Nombre = txtNombre.Text;
P.ApellidoP = txtApellidoP.Text;
 
P.Direcciones[0].Comuna = txtComuna.Text;
P.Direcciones[0].Calle = txtCalle.Text;

pero me da este error
error

si pudiesen ayudarme para ver en que estoy fallando seria de mucha ayuda
de ante mano gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 31
Ha mantenido su posición en Visual CSharp .NET (en relación al último mes)
Gráfica de Visual CSharp .NET

clases y list

Publicado por Miguel (16 intervenciones) el 19/11/2016 16:25:25
Bueno, la propiedad "Direcciones" al inicio es null, tienes que que asignarle valor, y también los items (estás tratando de usar el item 0, como si se tratara de un array declarado).

1
2
3
4
5
6
7
8
9
10
11
12
13
// Inicias la propiedad
Direcciones = new List<Direccion>();
 
// Creas el item y asignas sus valores
Direccion dir = new Direccion();
dir.Comuna = txtComuna.Text;
dir.Calle = txtCalle.Text;
 
// Agregas el item a la lista
Direcciones.Add(dir);
 
// Usando el item insertado desde la lista
Direcciones[0].Calle = "nueva calle";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

clases y list

Publicado por nicolas (2 intervenciones) el 20/11/2016 12:15:15
muchas gracias por la ayuda con eso me pude orientar y al final trabaje de esta forma

1
2
3
4
5
6
7
8
9
10
Persona P = new Persona();
P.Direcciones = new List<Direccion>();
 
 
 
P.Nombre = txtNombre.Text;
 
P.ApellidoP = txtApellidoP.Text;
 
P.Direcciones.Add(new Direccion() {Comuna=txtComuna.Text, Calle = txtCalle.Text });

pero ahora tengo otra duda mas

si tubiese una clase mas por ejemplo "tipodireccion" y en direccion tuviese public virtual List<tipodireccion> tiposdireccion
como hago para llegar a ella a traves de la clase persona?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 31
Ha mantenido su posición en Visual CSharp .NET (en relación al último mes)
Gráfica de Visual CSharp .NET

clases y list

Publicado por Miguel (16 intervenciones) el 21/11/2016 20:37:58
1
2
3
persona.Direcciones[0].tiposdireccion = new List<tipodireccion>();
 
persona.Direcciones[0].tiposdireccion[0] = valor;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar