草庐IT

lambda表达式

全部标签

c# - 表达式树在哪些情况下很有用?

我完全理解表达式树的概念,但我很难找到它们有用的情况。是否有可以应用表达式树的特定实例?或者它只是作为代码的传输机制有用吗?我觉得我在这里遗漏了一些东西。谢谢! 最佳答案 一些单元测试模拟框架使用表达式树来设置强类型的期望/验证。即:myMock.Verify(m=>m.SomeMethod(someObject));//tellsmoqtoverifythatthemethod//SomeMethodwascalledwith//someObjectastheargument这里,表达式从未真正执行过,但表达式本身保存了有趣的信息

c# - 使用 C# 将字符串表达式转换为整数值

这个问题在这里已经有了答案:operatorsasstrings(13个答案)关闭9年前。如果这个问题已经得到回答,我很抱歉,但我没有找到合适的答案。我在C#中有一个字符串表达式,我需要将其转换为int或decimal值。例如:stringstrExp="10+20+30";输出应该是60。我该怎么做???

c# - params[] 可以作为 lambda 表达式的参数吗?

这个问题在这里已经有了答案:VariableparametersinC#Lambda(5个答案)关闭1年前。我最近开始探索lambda表达式,想到了一个问题。假设我有一个函数需要不确定数量的参数。我会使用params关键字来为可变数量的参数建模。我的问题:我可以用Lambda表达式做类似的事情吗?例如:Funcfoo=(paramsnumbers[])=>{intresult;foreach(intnumberinnumbers){result+=numbers;}returnresult;}如果是这样,就会出现两个子问题-是否有一种“好的”方式来编写这样的表达式,我什至想在某个时候编

c# - 在 .NET 正则表达式中高效组合 MatchCollection

在简化示例中,有两个正则表达式,一个区分大小写,另一个不区分大小写。这个想法是有效地创建一个IEnumerable集合(参见下面的“组合”)组合结果。stringtest="abcABC";stringregex="(?a)|(?b)|(?c)]";RegexregNoCase=newRegex(regex,RegexOptions.IgnoreCase);RegexregCase=newRegex(regex);MatchCollectionmatchNoCase=regNoCase.Matches(test);MatchCollectionmatchCase=regCase.Mat

c# - 奇怪的 lambda 行为

我偶然发现了thisarticle发现它很有趣,所以我自己跑了一些测试:测试一:Listactions=newList();for(inti=0;iConsole.WriteLine(i));foreach(Actionactioninactions)action();输出:55555测试二:Listactions=newList();for(inti=0;iConsole.WriteLine(j));}foreach(Actionactioninactions)action();输出:01234根据这篇文章,在测试一中,所有lambda都包含对i的引用,这导致它们全部输出5。这是否意

c# - 用于替换除数字之外的所有字符的正则表达式

如果我有一串数据,里面有数字。这种模式是不一致的。我想从字符串中提取所有数字,并且只提取一个定义为允许的字符。我认为RegEx可能是执行此操作的最简单方法。你能提供一个可以做到这一点的正则表达式模式吗,因为我认为正则表达式是巫术,只有正则表达式医学人才知道它是如何工作的例如/"Q1W2EE3R45T"="12345""WWED456J"="456""ABC123"="123""N123"="N123"//Nisanallowedcharacter更新:这是我的代码:vardata=Value.Split(newchar[]{','},StringSplitOptions.RemoveE

c# - 如何创建用于运行时排序的表达式树?

使用EntityFramework4,我尝试根据成员名称的集合实现动态排序。基本上,用户可以选择要排序的字段和排序的顺序。我看过表达式树示例,但无法将其拼凑在一起。以下是一些详细信息:列名集合:publicListsortColumns;sortColumns=newList();///Examplesubsetofvideofields.Thecollectionwillvary.sortColumns.Add("Width");sortColumns.Add("Height");sortColumns.Add("Duration");sortColumns.Add("Title")

c# - 基于子实体的属性构建 OrderBy Lambda 表达式

我正在尝试使用lambda表达式生成一个LINQOrderBy子句,并将实体的列名称作为字符串输入(在下面的“sortOn”变量中)。下面的代码适用于生成lambda的sortOn值,如“代码”p=>p.Code但我还想对lambda可能所在的子实体进行排序p=>p.Category.Description所以在这种情况下,我只想设置sortOn="Category.Description"并生成正确的lamdba表达式。这可能吗?我们欢迎任何有关执行此操作的最佳方法的建议。此代码适用于简单的情况:varparam=Expression.Parameter(typeof(Product

c# - 为什么 integer == null 在 C# 中是一个有效的 boolean 表达式?

如果integer(int类型的变量)不可为空,为什么integer==null在C#中是一个有效的boolean表达式?(我不反对,其实我也喜欢,只是我不知道可以) 最佳答案 尽管int本身是不可空的,但存在到int?的隐式转换,是可空的。此时,如果该结构在两侧都声明了具有相同类型的==运算符,那么它也将被提升以处理可为null的类型。所以这不能编译:publicstructFoo{}classTest{staticvoidMain(){Foox=newFoo();if(x==null){...}}}...但是如果您给Foo一些运

c# - lambda 中的自定义相交

我想知道这是否可以使用lambda表达式来解决:ListlistOne=service.GetListOne();ListlistTwo=service.GetListTwo();Listresult=newList();foreach(varoneinlistOne){foreach(vartwoinlistTwo){if((one.Id==two.Id)&&one.someKey!=two.someKey)result.Add(one);}} 最佳答案 当然可以!您可以使用thisoverloadLinq的Intersect采用