I de pino para los días en que, como programador C, podría escribir:¿Cómo se compara Array.ForEach() con el ciclo estándar para C#?
memset(byte_array, '0xFF');
y obtener una matriz de bytes lleno de personajes 'FF'. Por lo tanto, he estado buscando un reemplazo para esto:
for (int i=0; i < byteArray.Length; i++)
{
byteArray[i] = 0xFF;
}
Últimamente, he estado usando algunos de los nuevos C# características y han estado utilizando este enfoque en su lugar:
Array.ForEach<byte>(byteArray, b => b = 0xFF);
realidad, el segundo el enfoque parece más limpio y es más fácil a simple vista, pero ¿cómo se compara el rendimiento con el primer enfoque? ¿Estoy introduciendo gastos indirectos innecesarios usando Linq y genéricos?
Gracias, de Dave
http://stackoverflow.com/questions/1897555/what-is-the-equivalent-of-memset-in-c – CAbbott
FYI en el segundo enfoque no está utilizando LINQ. LINQ no tiene un método 'ForEach'. Está utilizando un método estático de la clase Array: 'Array.ForEach'. La expresión lambda es azúcar sintáctica para un delegado y no cuenta como LINQ. –
Gracias a todos por las respuestas. Aprendí algo y espero que otros también puedan aprender algo. – DaveN59