title: Working with C# lists
body: <p>I'm trying to understand how does lists work in C# but I can't run my application because I get those messages:</p>
  
  <blockquote>
    <p>Error 1   Inconsistent accessibility:
    property type 'ClaseLista.ListNode' is
    less accessible than property
    'ClaseLista.List.PrimerNodo'  C:\Documents
    and
    Settings\Usuario\Escritorio\Listas\ClaseLista\List.cs 19  25  ClaseLista</p>
    
    <hr>
    
    <p>Error 2   Inconsistent accessibility:
    property type 'ClaseLista.ListNode' is
    less accessible than property
    'ClaseLista.List.UltimoNodo'  C:\Documents
    and
    Settings\Usuario\Escritorio\Listas\ClaseLista\List.cs 24  25  ClaseLista</p>
    
    <hr>
  </blockquote>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  
  using ClaseLista;
  
  namespace Listas
  {
      class Program
      {
          static void Main(string[] args)
          {
              List Lista1 = new List();
              int opcion = 1;
              while (opcion &gt; 0 &amp;&amp; opcion &lt; 3)
              {
                  Console.WriteLine("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
                  Console.WriteLine("x Menú Principal (dos datos) x");
                  Console.WriteLine("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
                  Console.WriteLine("x                            x");
                  Console.WriteLine("x 1: Insertar Alumnos        x");
                  Console.WriteLine("x 2: Imprimir Lista          x");
                  Console.WriteLine("x 3: Salir                   x");
                  Console.WriteLine("x                            x");
                  Console.WriteLine("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
                  Console.Write("Ingrese opción: ");
                  opcion = int.Parse(Console.ReadLine());
                  switch (opcion)
                  {
                      case 1: int numero; string nombre, codigo;
                          Console.Write("Ingrese número de elementos: ");
                          numero = int.Parse(Console.ReadLine());
                          for (int i = 1; i &lt;= numero; i++)
                          {
                              Console.WriteLine("Datos del alumno " + i);
                              Console.Write("Ingrese Nombre: ");
                              nombre = (Console.ReadLine());
                              Console.Write("Ingrese Codigo: ");
                              codigo = (Console.ReadLine());
                              Lista1.InsertaInicio(nombre, codigo);
                          }
                          break;
                      case 2:
                          if (Lista1.EsVacio())
                          {
                              Console.WriteLine("Lista Vacia");
                          }
                          else
                          {
                              Lista1.Imprimir();
                          }
                          break;
                  }
              }
          }
      }
  }
  </code></pre>
  
  <hr>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  
  namespace ClaseLista
  {
      public class List
      {
          //Constructor
          private ListNode primerNodo;
          private ListNode ultimoNodo;
          public List()
          {
              primerNodo = null;
              ultimoNodo = null;
          }
          //Propiedades
          public ListNode PrimerNodo
          {
              get { return primerNodo; }
              set { primerNodo = value; }
          }
          public ListNode UltimoNodo
          {
              get { return ultimoNodo; }
              set { ultimoNodo = value; }
          }
          //insertar al inicio
          public void InsertaInicio(object nom, object cod)
          {
              if (EsVacio())
                  primerNodo = ultimoNodo = new ListNode(nom, cod, null);
              else
              {
                  primerNodo = new ListNode(nom, cod, primerNodo);
              }
          }
          //comprobar si es vacio
          public bool EsVacio()
          {
              return primerNodo == null;
          }
          //Imprimir
          public void Imprimir()
          {
              ListNode current = primerNodo;
              while (current != null)
              {
                  Console.WriteLine("|" + current.Nombre + " " + current.Codigo);
                  current = current.Siguiente;
              }
          }
      }
  }
  </code></pre>
  
  <hr>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  
  namespace ClaseLista
  {
      class ListNode
      {
          //Constructor
          private object nombre;
          private object codigo;
          private ListNode siguiente;
          public ListNode()
          {
              nombre = null;
              codigo = null;
              siguiente = null;
          }
          public ListNode(object nomb, object cod, ListNode sig)
          {
              nombre = nomb;
              codigo = cod;
              siguiente = sig;
          }
          //Propiedades
          public object Nombre
          {
              get { return nombre; }
              set { nombre = value; }
          }
          public object Codigo
          {
              get { return codigo; }
              set { codigo = value; }
          }
          public ListNode Siguiente
          {
              get { return siguiente; }
              set { siguiente = value; }
          }
      }
  }
  </code></pre>
  
  <p>What can I do?</p>