我在C#中有一个代码,它使用lambda表达式将委托传递给方法.我如何在PowerShell中实现这一目标.例如,以下是C#代码:
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);
Run Code Online (Sandbox Code Playgroud)
这是没有lambda表达式的PowerShell脚本:
$input = "(,)(;)(:)(!)";
$pattern = "\((?<val>[\,\!\;\:])\)";
$r = New-Object System.Text.RegularExpressions.Regex $pattern
$result = $r.Replace($input, "WHAT HERE?")
Write-Host $result
Run Code Online (Sandbox Code Playgroud)
注意:我的问题不是解决这个正则表达式问题.我只想知道如何将lambda表达式传递给在PowerShell中接收委托的方法.
我有一个SELECT
生成语句的CTE ,但是SQL Server(2012)不允许对其进行调用EXEC
。这是查询:
DECLARE @guidToFind uniqueidentifier = 'E4069560-091A-4026-B519-104F1C7693B3';
WITH GuidCols (TableName, ColName, Query) As
(
SELECT
C.TABLE_NAME,
C.COLUMN_NAME,
'SELECT ' +
QUOTENAME(C.TABLE_NAME) + '.' +
QUOTENAME(C.COLUMN_NAME) + '
FROM ' +
QUOTENAME(C.TABLE_NAME) + '
WHERE ' +
QUOTENAME(C.COLUMN_NAME) + ' = ''' + cast(@guidToFind AS VARCHAR(50))+
''''
FROM
INFORMATION_SCHEMA.COLUMNS C
INNER JOIN INFORMATION_SCHEMA.TABLES T
ON C.TABLE_NAME = T.TABLE_NAME AND
T.TABLE_TYPE = 'BASE TABLE'
WHERE
C.DATA_TYPE = 'uniqueidentifier'
)
-- SELECT * FROM
EXEC( GuidCols.Query )
Run Code Online (Sandbox Code Playgroud)
如果我 …
我有时会对速记增量操作感到困惑.
因为当我在BASIC中进行小编程时,我得到了一些如何坚持使用a = a + 1,这是一种长期痛苦的方式,即"获取当前值,为其添加1,然后将新值存储回'.
1] a = a +1 ;
2] a++ ;
3] ++a;
4] a +=1;
Run Code Online (Sandbox Code Playgroud)
[1]和[4]在功能上有不同的表示法,对吗?
由于增量符号++之前和之后的事实,2]和3]的工作方式完全不同.对?
我可以安全地假设下面的内容吗?
int f(int x){ return x * x;}
y = f(x++) -> for x =2, f(x) = x^2
f(x) ======> y= 2^2 =4
x=x+1; ======> x= 2+1 = 3
y = f(++x) -> for x =2, f(x) = x^2
x=x+1 ===========> x = 2+1 = 3
f(x) ===========> y =3^2 = 9
Run Code Online (Sandbox Code Playgroud) 我需要编写一个新颖的自定义算法,用于在文本框中处理和渲染从右到左和从左到右的字符串,然后我需要在窗口中创建所有文本框,以使用此算法.
我的问题是关于第二个工作,也就是说,如何更改windows机器中所有文本框的渲染机制?我应该从哪个部分的Win32 API开始?它是某种黑客攻击现有系统dll还是有一些API来做这些事情?
所以我对"代码世界"相当新,希望有一个相当简单的问题.
txtBox.Text = "x";
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做,所以我能够在txtBox
没有完全写出来的情况下看到10个X ?