Update-Select en un DataTable con LINQ

by Valeriano Tortola 12. septiembre 2008 03:30

Últimamente ya no escribo nada, estoy totalmente inmerso en el mundo LINQ con el C# 3.0 y LINQ de Octavio Hernandez y el LINQ en Action ... y poco hay que contar que no este en libros ó en los cientos de blogs que llevan escribiendo sobre LINQ desde hace mucho tiempo. Aún asi por lo menos iré escribiendo alguna cosilla sobre LINQ aunque solo sea para que no se me olvide como hacer ciertas cosas y tener que volverlas a buscar :P

Este es un ejemplo simple de como lanzar una consulta Update-Select con LINQ sobre un DataTable, apoyandonos en el ya famoso método extensor ForEach ... (que según me ha comentado un compañero es posible que aparezca en la BCL próximamente), lo que hace es en cada DataRow que cumple con las condiciones dadas introduce en la columna "Initial" la primera letra del nombre... (nada complicado vamos xD)

EmployeesTable.AsEnumerable()
   .Where(EmployeeRow => !EmployeeRow.IsNull("Country") && 
                  EmployeeRow.Field<String>("Country") == "UK" &&
                  !EmployeeRow.IsNull("FirstName") &&
                  EmployeeRow.Field<String>("FirstName") != String.Empty)
   .ForEach(EmployeeRow => EmployeeRow.SetField<String>("Initial", 
                                EmployeeRow.Field<String>("FirstName").Substring(0, 1)));

También empezaré ahora a escribir sobre WPF... que me toca ponerme las pilas :D

Tags: ,

C# 3.0 | .NET 3.5

Obtener el hash de un archivo

by Valeriano Tortola 7. marzo 2008 22:02

Esto es un ejemplo de como obtener distintos tipos de hash de un archivo,  me apoyaré en una de las nuevas características de C# 3.0, los métodos extensores, para tener más a mano esta funcionalidad. Como se puede ver en el código implementar nuevos métodos para la obtención de otros tipos de hash es sumamente sencillo.

Hay distintos tipos de hash, en este ejemplo he utilizado MD5y dos versiones de SHA, SHA-1 y SHA256. La necesidad y cualidades de cada uno nos dirán que usar en cada momento.

Mas...

Tags: ,

C# 3.0 | .NET 3.5