草庐IT

lambda表达式

全部标签

c# - 正则表达式以 [ 开始并以 ] 结束

查找以[开头并以]结尾的字符串的正则表达式是什么?在[和]之间的各种字符都可以。 最佳答案 [和]是正则表达式中的特殊字符,需要对它们进行转义。这应该适合你:\[.*?\].*?对任何字符进行非贪婪匹配。非贪婪方面确保您将匹配[abc]而不是[abc]def]。如果要匹配整个字符串,请添加前导^和尾随$,例如abc[def]ghi中完全没有匹配项。 关于c#-正则表达式以[开始并以]结束,我们在StackOverflow上找到一个类似的问题: https://

c# - LINQ 如何在 lambda 表达式中选择超过 1 个属性?

我们经常使用下面的lambda表达式MyList.Select(x=>x.Id).ToList();是否可以使用lambda表达式获得超过1个属性?例如来自MyList的Id和Name?我知道我可以使用以下语法:(fromiteminMyListselectnew{item.Id,item.Name}).ToList();我可以使用lambda表达式做同样的事情吗? 最佳答案 MyList.Select(x=>new{x.Id,x.Name}).ToList(); 关于c#-LINQ如何

C# Lambda 表达式语法 : are brackets necessary?

我是C#的新手,之前我看到lambda表达式是这样的(params)=>{expression;}但是在LINQ中,我看到了这样的例子IEnumerablecustomerFirstNames=customers.Select(cust=>cust.FirstName);没有括号。(我实际上是指{}和()-不管我们称它们为大括号、圆括号还是方括号。)它们是一样的还是有什么区别?非常感谢。 最佳答案 规则是:lambda表达式的形式为(modifiertypeparameter,modifiertypeparameter...)=>{

c# - 如何检查深度 lambda 表达式中的空值?

这个问题在这里已经有了答案:Possiblepitfallsofusingthis(extensionmethodbased)shorthand(11个答案)关闭9年前。如何检查深度lamda表达式中的空值?例如,我有一个嵌套了多层的类结构,我想执行以下lambda:x=>x.Two.Three.Four.Foo我希望它在二、三或四为空时返回空,而不是抛出System.NullReferenceException。publicclassTests{//Thistestwillsucceed[Fact]publicvoidReturnsValueWhenClass2NotNull(){v

c# - "00000000000000000000000000000"匹配正则表达式 "^[1-9]|0$"

在.Net4.5中,我发现的结果System.Text.RegularExpressions.Regex.IsMatch("00000000000000000000000000000","^[1-9]|0$")是真的。我期望的结果是错误的。我不知道为什么。你能帮帮我吗?更新:一开始,我在验证正则表达式^-?[1-9]\d*|0$,它用于匹配在互联网上找到的整数,我发现带有多个0匹配正则表达式。 最佳答案 问题是交流发电机的绑定(bind)行为。默认情况下(即不使用分组),包含交流发电机(|)的表达式将匹配交流发电机左侧的值或右侧的值

c# - 我可以使用正则表达式查找 X 的索引吗?

我有一个很大的字符串,想找到第一个出现的X,X是“numberXnumber”……3X3,或者4X9……我如何在C#中执行此操作? 最佳答案 vars="longstring.....24X10.....1X3";varmatch=Regex.Match(s,@"\d+X\d+");if(match.Success){Console.WriteLine(match.Index);//16Console.WriteLine(match.Value);//24X10;}另请查看NextMatch,这是一个方便的函数match=match

c# - 用于 URL 验证的正则表达式

我已经编写了正则表达式来验证URL,它可能是这样的google.comwww.google.comhttp://www.google.comhttps://www.google.com我用过RegexurlRx=newRegex(@"^(http|ftp|https|www)://([\w+?\.\w+])+([a-zA-Z0-9\~\!\@\#\$\%\^\&\*\(\)_\-\=\+\\\/\?\.\:\;\'\,]*)?$",RegexOptions.IgnoreCase);它适用于http和https。它不适用于google./com和www.google.com。请帮我解决这

c# - 在条件运算中使用 true 和 false 作为表达式

我正在维护一些代码并且经常发现以下模式:varisMale=(row["Gender"].ToString()=="M")?true:false;而不是这个:varisMale=(row["Gender"].ToString()=="M");有什么理由为什么有人会这样做吗?有人认为前者更具可读性或更清晰吗?是否有某种旧的C语言“陷阱”是它的延期? 最佳答案 合理的理由?没有。它通常是由并不真正理解条件本身也是一个表达式的人产生的,它会产生一个bool结果。特别是,人们接受的语言不是这种情况,例如BASIC的许多变体。

c# - 正则表达式 - 在字符之前匹配模式

我目前正在用C#构建一个玩具组装器(正在阅读TheElementsOfComputingSystems书)。我需要匹配一个非常简单的模式,我认为这是学习一些正则表达式的好时机,但我正在努力!在下面的例子中,我只想匹配'='之前的字母M=AD=MMD=AA=D广告=MAMD=A我想出了以下内容:([A-Z]{1,3})=但是这也匹配我不想要的'='。我也试过:([A-Z^\=]{1,3})=但我仍然遇到同样的问题-它也匹配'='符号。我正在使用thissite测试我的正则表达式。任何帮助将不胜感激。提前谢谢你。 最佳答案 您想要的是所

c# - 将此 LINQ 表达式转换为 Lambda

伙计们,我很难将下面的linq表达式(左连接实现)转换为lambda表达式(用于学习)。varresult=fromgingroceryjoinfinfruitong.fruitIdequalsf.fruitIdintotempFruitjoinvinveggieong.vegidequalsv.vegidintotempVeggfromjoinedFruitintempFruit.DefaultIfEmpty()fromjoinedVeggintempVegg.DefaultIfEmpty()selectnew{g.fruitId,g.vegid,fname=((joinedFrui