草庐IT

lambda表达式

全部标签

c# - 无法使正则表达式与多行一起正常工作

我有一个来自应用程序的相当大的XML输出。我需要用我的程序处理它,然后反馈给原来的程序。此XML中有些部分需要填写或替换。有趣的部分如下所示:valueherearesomeothertagsvalue并且该文档包含多个这样的部分。我需要获取这些标签内的所有XML片段,以便能够对其进行修改。我写了一个正则表达式来获取这些片段,但它不起作用:XmlDocumentxmlDoc=newXmlDocument();xmlDoc.Load(@"output.xml");RegexregExp=newRegex(@"(.*?)",RegexOptions.Multiline&RegexOptio

c# - 验证有效时间的正则表达式

我需要一个正则表达式来验证时间。有效值将从0:00到23:59。当时间小于10:00时,也应该支持一个字符的数字。这些是有效值:9:0009:00 最佳答案 试试这个正则表达式:^(?:[01]?[0-9]|2[0-3]):[0-5][0-9]$或者更明确地说:^(?:0?[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$ 关于c#-验证有效时间的正则表达式,我们在StackOverflow上找到一个类似的问题: https://stackove

c# - 匹配所有美国电话号码格式的正则表达式

首先我会说我在这里看到了很多例子并用谷歌搜索但没有发现符合我正在寻找一些匹配前3名不低于某些中间值的所有条件。请告诉我如何将它们全部放在一个地方。(xxx)xxxxxxx(xxx)xxxxxxx(xxx)xxx-xxxx(xxx)xxx-xxxxxxxxxxxxxxxxx-xxx-xxxxx用作:conststringMatchPhonePattern=@"\(?\d{3}\)?-?*\d{3}-?*-?\d{4}";Regexrx=newRegex(MatchPhonePattern,RegexOptions.Compiled|RegexOptions.IgnoreCase);//F

c# - Moq VerifySet(Action) 替换过时的表达式编译错误

引用这个问题:Moqhowtoreplaceobsoleteexpression我有以下内容:[Test]publicvoidOnSearchRequest_ViewFiresEvent_EventIsHandled(){//ArrangeMockview=newMock();Usersusers=newUsers(view.Object);//Actview.Raise(v=>v.SearchForUsers+=null,this,newSearchEventArgs());//Assertview.VerifySet(v=>v.SearchResult=It.IsAny>());}

c# - .NET 字节而不是字符的正则表达式

我正在尝试做一些使用正则表达式会更容易的解析。输入是字节数组(或枚举)。我不想将字节转换为字符,原因如下:计算效率内存消耗效率一些不可打印的字节可能很难转换为字符。并非所有字节都是可打印的。所以我不能使用Regex.我知道的唯一解决方案是使用Boost.Regex(适用于字节-C字符),但这是一个C++库,使用C++/CLI进行包装将需要大量工作。如何在不使用.NET字符串和字符的情况下直接在.NET中对字节使用正则表达式?谢谢。 最佳答案 此处存在一些阻抗失配。您希望在.Net中使用使用字符串(多字节字符)的正则表达式,但您希望使

c# - 带有 await 的异步 lambda 表达式返回任务?

我有以下代码://Getallofthefilesfromthelocalstoragedirectory.varfiles=awaitfolder.GetFilesAsync();//Mapeachfiletoastreamcorrespondingtothatfile.varstreams=files.Select(asyncf=>{returnawaitf.OpenStreamForWriteAsync();});我希望streams类型为IEnumerable但实际上是IEnumberable>,如果我省略了await关键字,这就是我所期望的。OpenStreamForWrit

c# - c# lambdas 只存在于编译时吗?

这个问题在这里已经有了答案:WhatareC#lambda'scompiledinto?Astackframe,aninstanceofananonymoustype,or?(4个答案)关闭9年前。我说lambda表达式仅在编译时存在,并且一旦编译它们就变成表达式(LambdaExpression?)或委托(delegate),我对吗?

c# - 为什么匿名委托(delegate)/lambda 不推断 out/ref 参数的类型?

StackOverflow上的几个C#问题询问如何使用out或ref参数制作匿名委托(delegate)/lambda。参见,例如:CallingamethodwithreforoutparametersfromananonymousmethodWritealambdaoranonymousfunctionthatacceptsanoutparameter为此,您只需指定参数的类型,如:publicvoiddelegateD(outTp);//...Da=(outTt)=>{...};//Lambdasyntax.Db=delegate(outTt){...};//Anonymousd

c# - 为什么 lambda 比 IL 注入(inject)动态方法快?

我刚刚构建了动态方法-见下文(感谢其他SO用户)。看起来Func创建为动态方法,IL注入(inject)比lambda慢2倍。有人知道为什么吗?(编辑:这是在VS2010中作为版本x64构建的。请从控制台而不是从VisualStudioF5内部运行它。)classProgram{staticvoidMain(string[]args){varmul1=IL_EmbedConst(5);varres=mul1(4);Console.WriteLine(res);varmul2=EmbedConstFunc(5);res=mul2(4);Console.WriteLine(res);dou

c# - 如何使用 F# lambda 创建 Linq 表达式树?

这是可以在C#中完成的操作-vartwo=2;System.Linq.Expressions.Expression>expr=x=>x*two;expr.Compile().Invoke(4);//returns8我希望在F#中做同样的事情。这是我尝试过的,但没有编译-lettwo=2letexpr=(funx->x*two):System.Linq.Expressions.Expression>expr.Compile().Invoke(4)//desiredtoreturn8也许可以预见,第2行编译失败并出现以下错误-"Thisfunctiontakestoomanyargumen