刚刚遇到以下代码行并且难以找到它的文档,它是lambda expression
吗?这是做什么的?
temp = Regex.Replace(url, REGEX_COOKIE_REPLACE,match => cookie.Values[match.Groups["CookieVar"].Value]);
对=>
特别感兴趣。
答案 0 :(得分:9)
如果查看Replace的文档,第3个参数是MatchEvaluator
:
http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.matchevaluator.aspx
这是一个委托,它将Match
作为参数并返回用它替换的字符串。您的代码使用lambda表达式定义MatchEvaluator
:
match => cookie.Values[match.Groups["CookieVar"].Value]
在这里,对于Regex找到的每个匹配,正在cookie.Values
字典中查找一个值,结果将被用作替换。
答案 1 :(得分:7)
match => cookie.Values[match.Groups["CookieVar"].Value]
是
的捷径delegate (Match match)
{
return cookie.Values[match.Groups["CookieVar"].Value];
}
答案 2 :(得分:1)
RegEx.Replace
为REGEX_COOKIE_REPLACE
中url
的每个匹配运行lambda,并将该匹配替换为lambdas结果。
lambda(或速记代表)
match => cookie.Values[match.Groups["CookieVar"].Value]
使用Value
的“CookieVar”Group,
的{{1}}来查找Match,
集合中的替换。查找值将替换匹配。
为了告诉您有关“CookieVar”组的更多信息,我们需要查看对cookie.Values
的评估