所有问题: [lambda]

567 个问题

12
投票
8答案
1556 次观看

什么时候过多的“λ行动”?

我经常发现自己将lambda用作某种“局部函数”,从而通过以下重复性操作使我的生活更轻松: Func<string, string> GetText = (resource) => this.resourceManager.GetString(resource); Func<float, object, string> FormatF1 = (f, o) => String.Format("{0:F1} {1}", f, o); Func<float, object, string> FormatF2 = (f, o) => St...

2
投票
3答案
3714 次观看

通用列表RemoveAll和lambda表达式

我在这里显然缺少了一些东西……我有一个通用的对象列表,我正在尝试使用lambda表达式删除项目。当我使用下面发布的代码时,出现以下异常。 System.InvalidOperationException:序列不包含匹配的元素 public class MyObject { public Guid ID1 {get;set;} public int ID2 {get;set;} } public class MyContainer{ List<MyObject> myList = new List<MyObject>(); ...

430
投票
21答案
28838 次观看

反映参数名称:是否滥用C#lambda表达式或语法辉煌?

我正在查看 MvcContrib 网格组件,我很着迷,但同时又着迷被网格语法: .Attributes(style => "width:100%") 上面的语法将生成的HTML的style属性设置为width:100%。现在,请注意,“ style”未指定。它是根据表达式中参数的名称推导出来的!我不得不深入研究,发现“魔术”发生的位置: Hash(params Func<object, TValue>[] hash) { foreach (var func in hash) { Add(func.Method.GetPara...

25
投票
8答案
12633 次观看

在C#中组合两个Lambda表达式

给出这样的类结构: public class GrandParent { public Parent Parent { get; set;} } public class Parent { public Child Child { get; set;} } public class Child { public string Name { get; set;} } 和以下方法签名: Expression<Func<TOuter, TInner>> Combine (Expression<Func<TOuter, ...

5
投票
1答案
1920 次观看

何时使用或不使用Lambda表达式

我看到lambda表达式在该语言的某些方面已经成为非常有用的工具。我已经使用了很多次,并且大多数时候它们都非常合适,并且使代码更短或更清晰。 现在..我已经看过一些,我会说过度使用它们。有些人非常喜欢它们,因此尝试在所有可能的地方使用它们。有时,C#代码看起来像一种功能语言。 其他不利因素包括lambda的反射成本,并且不便于调试。 我想听听有关使用或多或少使用lambda表达式有多好和如何清除代码的意见。 (这不是更好的示例,但可以说是触发条件) 我正在编写以下代码。使用delegate { return null; }可帮助我避免每次使用时都必须询问事件是否为null。...

18
投票
1答案
5353 次观看

在Linq中将func作为参数传递给实体和“内部.NET Framework数据提供程序错误1025”错误

我们有一个名为Task的类: public partial class Task : EntityObject { public EntityCollection<TaskUser> TaskUsers { get {...} set{...} } } 它具有名为TaskUsers的导航属性,其中包含与此任务关联的用户: public partial class TaskUser : EntityObject { public User User { get {...} set { } } } 每个TaskUser对象都有一个User对...

7
投票
3答案
13333 次观看

LINQ从String []追加到StringBuilder

我有一个String数组,想通过LINQ添加到字符串生成器中。 我基本上要说的是“对于此数组中的每个项目,在此StringBuilder后面添加一行”。 我可以使用foreach循环很容易地做到这一点,但是下面的代码似乎什么也没做。我想念什么? stringArray.Select(x => stringBuilder.AppendLine(x)); 它在什么地方起作用: foreach(String item in stringArray) { stringBuilder.AppendLine(item); }

1
投票
4答案
11063 次观看

LINQ:帮助linq查询并包含IEnumerable <string>?</string>

有人可以帮忙吗? 我有一个linq查询,它嵌入在扩展方法中,它以v.RentalStatus为String的形式工作。我现在在原始查询中使用了一个网上论坛(查询非常复杂,因此我不会在这里列出)。 重要的是v.RentalStatus = IEnumerable,因此它可以包含类似的内容 A (meaning active) R (meaning rented) U (unavailable) etc - many more 我创建了一个我想取回的列表,并将其存储在statusStringList中,例如,假设该列表包含A和R 这是我之前的代码,当时v.RentalSt...

11
投票
9答案
2626 次观看

有人可以给我解释一下真正简单语言中的闭包是什么吗?

可能重复: .NET中的“关闭”是什么? 我目前正在查看lambda表达式,而单词closure不断出现。有人可以用真正简单的语言向我解释。

2
投票
2答案
2806 次观看

如何扩展Func委托以包含最多四个参数?

我一直在使用LINQ进行编译查询,基本上是使用Func传递到编译查询中,但问题是它最多具有四个参数。 扩展此范围是一种好习惯吗? 有什么方法可以扩展此范围,还是应该创建自己的委托? 有时我需要传递六个参数,而其他五个则传递四个或更少的参数...因此,如果四个或更少,我可以继续使用Func委托。 当前传递的数据上下文和我需要的参数混合取决于每个单独的编译查询。

6
投票
4答案
30934 次观看

检查lambda表达式中的属性是否为null

我有一个要绑定到列表视图的对象列表。我按两个属性排序。存在一些记录可能不具有属性之一的问题。这导致错误。我希望它仍然绑定具有该属性的记录。 IEnumerable&lt;ERec&gt; list = retailerList.Cast&lt;ERec&gt;(); lvwRetailStores.DataSource = list.OrderByDescending(r =&gt; r.Properties["RS_Partner Type"].ToString()) .ThenBy(r =&gt; r.Proper...

1
投票
1答案
295 次观看

麻烦创建适当的lambda表达式

这是我需要更改的代码: var xParam = Expression.Parameter(typeof(E), typeof(E).Name); MemberExpression leftExpr = MemberExpression.Property(xParam, this._KeyProperty); Expression rightExpr = Expression.Constant(id); BinaryExpression binaryExpr = MemberExpression.Equal(leftExpr, rightExpr); //Create Lambda ...

1
投票
2答案
3537 次观看

如何在Lambda表达式中填充IEnumerable?

我只是无法解决这个问题,如果有人可以提供帮助,我将不胜感激。 所以我从数据库中获得了一个XML结果,如下所示: &lt;matches&gt; &lt;issuer client_name="MTR" score="6" match_list="MTR CORPORATION LIMITED"/&gt; &lt;issuer client_name="PEOPLE''S REPUBLIC OF CHINA" score="4" match_list="DEMOCRATIC PEOPLE'S REPUBLIC OF KOREA;GOVERNMENT OF ...

19
投票
2答案
5075 次观看

为什么在圆括号前面没有圆点就无法进行Ruby 1.9 lambda调用?

我检查了最新的Ruby版本,以了解最新的变化。我试图做的第一件事就是调用Ruby lambda / block / proc,就像处理Python可调用项一样。 a = lambda {|x| puts x} a.call(4) # works, and prints 4 a[4] # works and prints 4 a.(4) # same a(4) # undefined method 'a' for main:Object 为什么不能拨打最后一个电话?会吗?

0
投票
3答案
5146 次观看

XElement.Elements()扩展方法?

我有一个XML文件,该文件已加载到XElement中。我想计算同时存在并满足某些条件的PollEvent子级的数量。我有代码来计算PollEvent的总数,但是当我筛选此列表时,我似乎无法调用.Where,我相信这是由于.Elements返回(扩展名)IEnumerable&lt;XElements&gt;。/ p&gt; 这是到目前为止的代码-我在注释中放置了接下来要显示的内容。 public PollDayPoint LoadData(DateTime date) { PollDayPoint newDayPoint = new PollDayP...

10
投票
4答案
6846 次观看

使用Linq.Expression使用动态Lambda访问嵌套属性

让我们假设我有两个班级: class person { int ID string name Address address } class address { int ID string street string country } 这些类或多或少都给出了,说实话,它们是通过nHibernate映射的:) 在网格中( datatables.net 作为基础),我希望进行与类型无关的排序。/ p&gt; 因此,我创建了一个lambda表达式: var param = Expression.Parameter(type...

4
投票
4答案
1702 次观看

Lambda表达式中的TimeSpan

我想获得lambda函数,该函数将查询最后一分钟提交的项目。如何指定呢? var items= Items.Where(i=&gt;DateTime.Now.Subtract(i.Date)...)

2
投票
2答案
1387 次观看

jQuery lambda函数

无论将一个函数传递给另一个函数,jQuery都广泛使用lambda函数。但是Visual Studio 2008不支持JavaScript lambda函数中设置的断点。除了给该函数指定一个明确的名称并将其传递给jQuery函数之外,还有其他人知道任何解决方法吗?

2
投票
2答案
5676 次观看

动态创建lambdas表达式+ linq + OrderByDescending

如何创建动态lambda表达式以传递给linq中的orderby函数使用? 我基本上想在queryResults.OrderByDescending();中转换queryResults.OrderByDescending(myCustomGeneratedLambdaExp);,其中myCustomGeneratedLambdaExp应该是包含x =&gt; x.name的字符串。 谢谢

38
投票
5答案
9744 次观看

C#:从lambda表达式获取链中属性的名称

我正在开发一个使用lambda表达式指定属性的API。我正在使用与此代码相似的这段著名代码(这是简化且不完整的,只是为了弄清楚我在说什么): public void Foo&lt;T, P&gt;(Expression&lt;Func&lt;T, P&gt;&gt; action) { var expression = (MemberExpression)action.Body; string propertyName = expression.Member.Name; // ... } 要这样称呼: Foo((String x) =&gt; x.L...

10
投票
3答案
7518 次观看

使用C#Lambda将NameValueCollection转换为查询字符串是否有效?

在研究如何将NameValueCollection转换为查询字符串时,我遇到了不同的方法。我很好奇较短的lambda语法是否能像它一样有效。 如何使用迭代函数将NameValueCollection转换为(查询)字符串。 public static String ConstructQueryString(NameValueCollection parameters) { List&lt;String&gt; items = new List&lt;String&gt;(); foreach (String name in parameters) ...

4
投票
2答案
989 次观看

用于函数式编程的lambda微积分

在λ演算(λx。λy。λs。λz。x s(y s z))中用于两个教堂数字的加法运算,我们怎么能解释这一点,λ函数有没有很好的函数编程资源?非常感谢您的帮助

5
投票
6答案
3515 次观看

将Scheme表达式转换为字符串

给出一个表达式'(lambda(x)x)如何将其转换为字符串。我以为symbol-&gt; string可以胜任工作,但是不,它不能不是符号。 例如,将宏字符串化: (to-string(lambda(x)x))这应该返回&gt;&gt;“(lambda(x)x)” 任何想法的人谢谢

1
投票
2答案
267 次观看

无法在Windows服务中使用Lambda表达式?

我已经为.net 3.5开发了一个服务器软件,尝试将其转换为Windows Service应用程序。因此,我创建了一个新的Windows服务项目并添加了所有类。但是我无法编译它,因为它不理解我使用的lambda表达式。我已经检查过,以便所有引用都被导入。但是似乎无法在Windows服务项目中更改目标框架,我怀疑这是问题所在。

0
投票
3答案
402 次观看

AsQueriable()或Expression <t> .Compile()?</t>

Edit2: 在最终能够将两者相互描述之后,看来在我的情况下.AsQueryable()比Expression.Compile()快一点。 原始问题: 我已经实现了一些数据库表(如List&lt;T&gt;)的缓存,我需要使用与查询Expression&lt;Func&lt;T, bool&gt;&gt;本身时所用的相同的Table&lt;T&gt;进行查询。 最快/最好的方法是什么? List&lt;T&gt;.AsQueryable().FirstOrDefault(Expression&lt;Func&lt;T, bool&gt;&gt;) 或 List&lt;...

3
投票
1答案
365 次观看

创建泛型函数的委托

我正在编写一些单元测试,并且具有很多形式的功能 public void SomeTestHelperMethod&lt;TKey, TValue&gt;(TKey key, TValue value) 我反复用这样的各种参数反复调用 SomeTestHelperMethod&lt;int, int&gt;(0, 1); SomeTestHelperMethod&lt;int, object&gt;(1, new Nullable&lt;double&gt;(16.5)); SomeTestHelperMethod&lt;int, string&gt;(2, "The qui...

3
投票
3答案
225 次观看

C#Lambda表达式帮助

如果我使用如下所示的lambda表达式 // assume sch_id is a property of the entity Schedules public void GetRecord(int id) { _myentity.Schedules.Where(x =&gt; x.sch_id == id)); } 我假设(尽管未经测试)我可以使用类似以下内容的匿名内联函数来重写它 _jve.Schedules.Where(delegate(Models.Schedules x) { return x.sch_id == id; }); 我的问题是,我该如...

1
投票
5答案
215 次观看

C#Lambda令人困惑的行为

Func&lt;Classification, string&gt; test1 = c =&gt; c.Id = "x"; Func&lt;Classification, string&gt; test2 = c =&gt; { return c.Id = "x";}; 我现在已经与lambda一起工作了将近一年,并且与他们的工作相当合理,但是今天我正在研究 NBuilder并看到了一个与示例不匹配的怪异Func。无论如何,我都玩过游戏,但它仍然可以退出游戏,但我不明白为什么上面的编译程序无法运行。我们正在做一个赋值,因此该表达式不会计算任何值,对吗???是否 所以我想也...

1
投票
2答案
753 次观看

使用匿名方法在对象初始化器中填充属性

假定sr是IEnumerable&lt;string&gt;,我想使用这样的代码使用来自sr.Lines()的两个项进行内联计算。问题是lambda是“ lambda expression”类型而不是Decimal,其共享期待。有什么方法可以在对象初始化程序中执行这种内联方法? var trades = from line in sr.Lines() let items = line.Split('|') select new Trade { Total = () =&gt; { return Convert.ToDeci...

0
投票
2答案
152 次观看

始终以有效状态创建实例的生成器或其他模式

我的对象设置非常复杂,沿途选择或限制了可用选项。我不想抛出异常或创建对象的无效实例。 因此,在基于以前的方法输入参数构建实例时,我想限制选项(可调用的方法)。例如,如果我有一些规则说用户是否为“ A”类型,则允许将其添加到角色中,否则,如果用户为“ B”类型,则询问位置以及位置是否在特定的邮政编码中……您会得到这个想法 使用匿名方法,类型和其他方式是否可能 用户类型A UserBuilder builder = new UserBuilder builer.Build().ForType("A").WithRoles(rolesList); 用户类型B Us...