public static int Comparar(Dato dato1, Dato dato2)
		{
			/*
				Retorna 0 si los datos son iguales
				Retorna -1 si el dato1 es menor que el dato2
				Retorna 1 si el dato1 es mayor que el dato2
				Retorna 2 si ocurre un error
				En caso de los atributos retorna 0 si son iguales 
				y -1 si son diferentes no hay orden lexicografico
			 */
			if(dato1.getTipoDato() == dato2.getTipoDato())
			{
				if(dato1.getTipoDato() == Dato.ATRIBUTO)
				{
					if (dato1.getDatoString().Equals(dato2.getDatoString(),StringComparison.InvariantCultureIgnoreCase))
						return 0;//Datos iguales
					else
						return -1;//Datos diferentes
				}
				else if(dato1.getTipoDato() == Dato.TEXTO)
				{
					return String.Compare(dato1.getDatoString(),dato2.getDatoString());
				}
				else if(dato1.getTipoDato() == Dato.NUMEROENTERO)
				{
					if(dato1.getDatoNumerico() == dato2.getDatoNumerico())
						return 0;
					else if(dato1.getDatoNumerico() < dato2.getDatoNumerico())
						return -1;
					else if(dato1.getDatoNumerico() > dato2.getDatoNumerico())
						return 1;
				}
				else if(dato1.getTipoDato() == Dato.NUMERORACIONAL)
				{
					if(dato1.getDatoRacional() == dato2.getDatoRacional())
						return 0;
					else if(dato1.getDatoRacional() < dato2.getDatoRacional())
						return -1;
					else if(dato1.getDatoRacional() > dato2.getDatoRacional())
						return 1;
				}
			}
			return 2;//retorna 2 cuando ocurre un error
		}
		public bool Equals(Dato dato)
		{
			if(!dato.existe() || !this.existe()) return false; /*Comprobar que pasa si el dato no existe retornar verdadero o falso*/
			if(this.getTipoDato() == dato.getTipoDato())
			{
				if(dato.getTipoDato() == Dato.ATRIBUTO)
				{
					return this.getDatoString().Equals(dato.getDatoString(),StringComparison.InvariantCultureIgnoreCase);
				}
				else if(dato.getTipoDato() == Dato.TEXTO)
				{
					return this.getDatoString().Equals(dato.getDatoString());
				}
				else if(dato.getTipoDato() == Dato.NUMEROENTERO)
				{
					if(this.getDatoNumerico() == dato.getDatoNumerico())
						return true;
				}
				else if(dato.getTipoDato() == Dato.NUMERORACIONAL)
				{
					if(this.getDatoRacional() == dato.getDatoRacional())
						return true;
				}
			}
			return false;
		}