草庐IT

lambda表达式

全部标签

c# - 默认 ASP.NET Core 身份密码的正则表达式

注意:我相信这个问题不是这个question的重复问题.我的问题是处理asp.netcoreidentity用于密码验证的默认验证规则以及如何制作它的正则表达式,而链接的问题正在讨论,一般来说是关于验证密码的行为(这不能解决我的问题)ASP.NETCore在密码验证后启用默认值最少8个字符应该至少有一个数字应该至少有一个大写应该至少有一个小写至少应有一个特殊字符(允许使用哪些特殊字符?)牢记这些条件,我尝试制作以下正则表达式,但它不起作用。^((?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])|(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[^a-z

c# - 类型为 ‘dynamic’ 的表达式在运行时的行为方式是否应与相同运行类型时间的非动态表达式相同?

考虑以下示例程序:usingSystem;publicdelegatestringMyDelegateType(intinteger);partialclassProgram{staticstringMyMethod(intinteger){returninteger.ToString();}staticvoidMain(){Funcfunc=MyMethod;//Scenario1:worksvarnewDelegate1=newMyDelegateType(func);newDelegate1(47);//Scenario2:doesn’tworkdynamicdyn=func;v

c# - 正则表达式中的 $1 和 $2 是什么?

我有一个关于C#中的正则表达式的简单问题。Whatis$1and$2inC#regularexpression?Doesbothcomeundergroups? 最佳答案 这是按索引捕获的组的值。$1是第一个捕获组,$2是第二个捕获组。正如David指出的那样,这些值用于替换模式。stringinput="HelloWorld";stringresult=Regex.Replace(input,@"(\w+)(\w+)","$2$1");输出:世界你好 关于c#-正则表达式中的$1和$2

c# - 使用正则表达式解析签名,具有 "fun"和数组返回值

我有这个[讨厌的]正则表达式来捕获一个VBA过程签名,其中包含一个桶中的所有部分:publicstaticstringProcedureSyntax{get{return@"(?:(?Friend|Private|Public)\s)?(?:(?Sub|Function|Property\s(Get|Let|Set)))\s(?(?:[a-zA-Z][a-zA-Z0-9_]*)|(?:\[[a-zA-Z0-9_]*\]))\((?.*)?\)(?:\sAs\s(?(((?[a-zA-Z][a-zA-Z0-9_]*))\.)?(?([a-zA-Z][a-zA-Z0-9_]*)|\[[a-

c# - 为什么不允许为方法声明空表达式体?

我有一个像这样有一个空主体的方法:publicvoidFoo(){}根据ReSharper的建议,我想将它转换为表达式主体以节省一些空间,它变成了:publicvoidFoo()=>;无法编译。是否有不支持的具体原因?而且我认为我应该为ReSharper打开一个错误票,因为它会将代码重构为不可编译的版本。 最佳答案 [编辑:此答案不正确,请勿使用-请参阅评论。]如您所见,表达式主体使用了lambda运算符(“=>”)。如果您仍想将空的void方法编写为表达式主体,则可以使用Expression.Empty()来表明Foo()是空(v

c# - 在 C# : where to start? 中解析骰子表达式(例如 3d6+5)

所以我希望能够在C#中解析和计算“骰子表达式”。骰子表达式定义如下::=+|-|[]d(|%)|:=positiveinteger例如d6+20-2d3将被允许,并且应该评估为rand.Next(1,7)+20-(rand.Next(1,4)+rand.Next(1,4))另外d%应该等同于d100。我知道我可以拼凑出一些解决方案,但我也知道这似乎是一个非常典型的计算机科学类型的问题,因此我应该研究一些super优雅的解决方案。我希望我的解析结果具有以下功能:我应该能够输出表达式的规范化形式;我首先考虑骰子,按骰子大小排序,并且总是带有前缀。所以例如上面的示例将变为1d6-2d3+20

c# - 表达式/语句树

进一步更新问题我一直在尝试在.NET4中使用表达式树在运行时生成代码,并且一直在尝试通过构建表达式树来实现foreach语句。最后,表达式应该能够生成执行此操作的委托(delegate):Action>action=source=>{varenumerator=source.GetEnumerator();while(enumerator.MoveNext()){vari=enumerator.Current;//thebodyoftheforeachthatIdon'tcurrentlyhaveyet}}我提出了以下从IEnumerable生成BlockExpression的辅助方法

c# - 表达式树复制或转换

如何将ExpressionTree转换为Expression>exp=p=>p.Age>50;到Expression>exp2=p=>p.Age>50;其中POCO1和POCO2是C#对象并且都具有Int32Age属性 最佳答案 好吧,你可以创建自定义表达式访问者来替换参数引用和补丁成员访问表达式classConverter{classConversionVisitor:ExpressionVisitor{privatereadonlyParameterExpressionnewParameter;privatereadonlyPa

c# - 使用三元表达式分配给可空类型时,将 null 转换为可空是否正确?

将null转换为类型对我来说感觉很奇怪,所以我想仔细检查这是否是正确的方法:decimal?d=data.isSpecified?data.Value:(decimal?)null;注意:我正在标记建议我个人最喜欢的方法的答案:decimal?d=data.isSpecified?data.Value:default(decimal?) 最佳答案 是的,没关系。备选方案:condition?(decimal?)value:nullcondition?newdecimal?(value):nullcondition?value:def

c# - 如何在起始索引处匹配正则表达式?

如何创建一个正则表达式,从开始搜索的地方开始匹配?换句话说:\A的等价物是什么,表示“在搜索开始时匹配,即使它不在主字符串的开头”?newRegex(@"\A\n").IsMatch("!\n",1);//Shouldbetrue,butisfalse 最佳答案 你要找的是\G:newRegex(@"\G\n").IsMatch("!\n",1);//It'stwue,it'stwue!实际上,这让我感到惊讶。我知道\G,但它通常被描述为匹配输入开头或最近成功匹配结尾的anchor,这两者均不适用于此处。如果这是.NET的创新,他们