Tengo un código en C# que usa expresiones lambda para delegar pasar a un método. ¿Cómo puedo lograr esto en PowerShell? Por ejemplo, el siguiente es un código C#:Expresión lambda en Powershell
string input = "(,)(;)(:)(!)";
string pattern = @"\((?<val>[\,\!\;\:])\)";
var r = new Regex(pattern);
string result = r.Replace(input, m =>
{
if (m.Groups["val"].Value == ";") return "[1]";
else return "[0]";
});
Console.WriteLine(result);
Y este es el script de PowerShell sin el lambda-expresión en su lugar:
$input = "(,)(;)(:)(!)";
$pattern = "\((?<val>[\,\!\;\:])\)";
$r = New-Object System.Text.RegularExpressions.Regex $pattern
$result = $r.Replace($input, "WHAT HERE?")
Write-Host $result
Nota: mi pregunta no se trata de resolver este regular- problema de expresión Solo quiero saber cómo pasar una expresión lambda a un método que recibe delegados en PowerShell.
Y gracias también por mencionar la sintaxis 'param ($ m)' dentro de los bloques de script. –
Si alguien quisiera un ejemplo real: '$ repo.Deployments.FindOne ({param ($ d) $ d.EnvironmentId -eq $ envId});' –