Да, вы можете использовать лямбда-выражение - но лично я, вероятно, не стал бы.Это выглядит как хорошее место для написания метода вместо:
public static byte[] Greenify(byte[] pixel)
{
int redValue = pixel[2];
int greenValue = pixel[1];
int blueValue = pixel[0];
pixel[1] += 10;
pixel[0] -= 10;
pixel[2] -= 10;
return pixel;
}
Вы можете легко создать делегат, соответствующий этому методу, используя преобразование группы методов, когда вынужно это:
CopyPixelOperation operation = Greenify;
или (в качестве аргумента вызова метода):
var result = Apply(Greenify).Then(Save); // Or whatever
Если это не что-то вроде параллельного foreach или ситуации, когда мне действительно нужно захватить контекст, яобычно предпочитают иметь методы над длинными анонимными функциями.