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:
Para el framework 3 podemos usar expresines lambda de esta forma.
--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com
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
No hay como poder pasar funciones como valores comunes y corrientes ¿no? :)
ResponderEliminar[Es en este tipo de detalles donde C# ha avanzado a pasos agigantados comparado con Java...]
de hecho.
ResponderEliminarno 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
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".
ResponderEliminarY 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
ta weno.
ResponderEliminaresto 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
En realidad ese es un generador por comprensión. La lista por comprensión seria:
ResponderEliminarit = [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.