Ir al contenido principal

mi primer sort con un Delegate :)

Alguna vez hace mucho tube que ordenar, pero lo hice de una forma muy poco eficiente.
Actualmente estoy con c# framework 2.

La forma de ordenar es super simple aqui Dejo un ejemplo:

list.Sort(
delegate(Persona foo, Persona bar){
return foo.Edad.CompareTo(bar.edad);
});


Para el framework 3 podemos usar expresines lambda de esta forma.


list.Sort(
(foo, bar) => foo.Edad.CompareTo(bar.Edad));


--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

Comentarios

  1. No hay como poder pasar funciones como valores comunes y corrientes ¿no? :)

    [Es en este tipo de detalles donde C# ha avanzado a pasos agigantados comparado con Java...]

    ResponderEliminar
  2. de hecho.
    no se si es por percepcion c# cada dia se trata de parecer un poquito mas a python[de lo poco que he visto python]. o na que ver??


    --
    Atte.
    Victor Hugo Saavedra
    http://vhspiceros.blogspot.com

    ResponderEliminar
  3. Es mas bien convergencia evolutiva. Las cabezas detras de ambos lenguajes cachan de hartos otros lenguajes y van incorporando lo mejor que hay "allá afuera".

    Y funciona en ambos sentidos.

    Python tenía properties, el for-each, list-comprehensions (mas o menos la base de LINQ, aunque LINQ es mas potente) y funciones como valores "de primera clase" antes que C# (en buena parte porque le llevaba 10 años de antiguedad a C#!).

    Pero C# introdujo las annotations a los lenguajes populares, las que despues se propagaron a Java y Python terminó basando sus "decoradores" en eso. La modificación del AST (Code-DOM creo que le llaman, donde puedes manipular las expresiones que ve el compilador y e inspeccionarlas/modificarlas(?) a gusto) también es algo que C# ha hecho más popular.

    El lenguaje que sí está siendo fuertemente influido por Python es Javascript. Se nota hasta en los keywords y la convencion de doble subrayado para metodos especiales (ej: __iterator__):

    New in Javascript 1.7

    New in Javascript 1.8

    ResponderEliminar
  4. ta weno.

    esto vendria siendo listas por comprension en python o no??


    let it = (i + 3 for (i in someObj));
    try {
    while (true) {
    document.write(it.next() + "
    \n");
    }
    } catch (err if err instanceof StopIteration) {
    document.write("End of record.
    \n");
    }

    --
    Atte.
    Victor Hugo Saavedra
    http://vhspiceros.blogspot.com

    ResponderEliminar
  5. En realidad ese es un generador por comprensión. La lista por comprensión seria:

    it = [i + 3 for (i in someObj)];

    La diferencia es que un generador es una manera comoda de definir un iterador, mientras que la lista es un contenedor de cosas (a la que se le pueden aplicar subindices, ordenar, reversar, etc, etc).

    Y en estricto rigor, en JS se llaman arreglos por comprensión.

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

buscar columnas en todas las tablas Sql Server

me vi en la necesidad de buscar en todas las tablas de una base de datos por un comodin ya que no conocia bien el modelo de la base de datos.
aqui les dejo el sql.
SELECT sysobjects.name AS table_name, syscolumns.name AS column_name, systypes.name AS datatype, syscolumns.LENGTH AS LENGTH FROM sysobjects INNER JOIN syscolumns ON sysobjects.id = syscolumns.id INNER JOIN systypes ON syscolumns.xtype = systypes.xtype WHERE (sysobjects.xtype = 'U') and (UPPER(syscolumns.name) like upper('%myFieldName%')) ORDER BY sysobjects.name, syscolumns.colid


Solo tienen que cambiar donde dice "myFieldName"por el nombre de la columna que desean buscar.

--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

"is not null" o "<> Null" en Sql Server

Trabajando con NHinbernate. mapeando unas clases, guardaba unos datos y hacia esta consulta para ver si estaba bien:


select * from table where campo <> NULL;


pero no me arrojaba los datos que queria y luego darle y darle vueltas hice esta consulta.

select * from table where campo is not NULL;


y ahi me di cuenta que el mapeo de Hibernet, y los cambios que habia hecho estaban bien. perdi toda una mañana de trabajo por esto :(.


Asi no es lo mismo "is not null" o "<> Null", por lo menos en Sql Server

Entonces ahora cada vez que quiera preguntar si un capo no es Null, voy a preguntar por "IS NOT NULL".

En caso de que quiera saber si un campo es null "IS NULL".




--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

Aplicación y Aplicativo

Cada dia es mas comun escuchar de aplicativo para referirse a un programa informatico,  esto puede sonar bastante cool, pero la verdad es que no lo es. El termino "aplicativo"  no existe en informatica, la palabra correcta para referirse a un programa informatica es "Aplicacion".

Las definiciones segun la real academedia española son;


Aplicación (informatica): Programa preparado para una utilización específica, como el pago de nóminas, formación de un banco de términos léxicos, etc.Aplicativo: Que sirve para aplicar algo.
y ustedes van a seguir usando aplicativo en vez de aplicación
Links:
http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=aplicativo http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=aplicaci%F3n


--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com