Tag: lambda

有没有可能在匿名函数中设置断点?

我很快想确定是否/何时触发一组事件。 所以我很快分配了空的lambda给他们。 _session.TopologyStarted += () => { }; 当事件触发时通过代码追踪,debugging器进入匿名函数,允许debugging它的执行。 但是,在此代码行上设置断点时,会在为事件分配匿名函数时设置断点。 有没有办法在匿名函数中设置断点?

Linq – 每个组的最高价值

我怎样才能使用Linq从每个组中selectTop值? 当我有一个代码段如: var teams = new Team[] { new Team{PlayerName="Ricky",TeamName="Australia", PlayerScore=234}, new Team{PlayerName="Hussy",TeamName="Australia", PlayerScore=134}, new Team{PlayerName="Clark",TeamName="Australia", PlayerScore=334}, new Team{PlayerName="Sankakara",TeamName="SriLanka", PlayerScore=34}, new Team{PlayerName="Udana",TeamName="SriLanka", PlayerScore=56}, new Team{PlayerName="Jayasurya",TeamName="SriLanka", PlayerScore=433}, new Team{PlayerName="Flintop",TeamName="England", PlayerScore=111}, new Team{PlayerName="Hamirson",TeamName="England", PlayerScore=13}, new Team{PlayerName="Colingwood",TeamName="England", PlayerScore=421} }; 预期结果: 球队名称球员名字得分 Srilanka Jayasurya 433 英国colingwood 421 澳大利亚克拉克334

使用Java 8实现recursionlambda函数

Java 8引入了lambda函数,我想实现像factorial: IntToDoubleFunction fact = x -> x == 0 ? 1 : x * fact.applyAsDouble(x-1); 编译返回 error: variable fact might not have been initialized 我怎样才能引用函数本身。 类是匿名的,但实例存在:它被称为fact 。

std :: remove_if – lambda,不会从集合中删除任何东西

好的,我希望我在这里犯了一个愚蠢的错误。 我有一个DisplayDevice3d列表,每个DisplayDevice3d包含一个DisplayMode3d列表。 我想从DisplayDevice3d列表中删除没有任何DisplayMode3d的所有项目。 我正在尝试使用Lambda来做到这一点,即: // If the device doesn't have any modes, remove it. std::remove_if(MyDisplayDevices.begin(), MyDisplayDevices.end(), [](DisplayDevice3d& device) { return device.Modes.size() == 0; } ); 即使在MyDisplayDevices中的6个DisplayMode3d中,只有1个在其Modes集合中具有任何DisplayMode3d,但是没有任何内容从列表中移除。 我在这里犯了什么错误? 编辑: 嗯,我的错误是我应该使用MyDisplayDevices.remove_if而不是std :: remove_if,但是下面的答案是正确的使用std :: remove_if:p。 MyDisplayDevices.remove_if( [](DisplayDevice3d const & device) { return device.Modes.size() == 0; });

“嵌套的foreach”vs“lambda / linq查询”性能(LINQ-to-Objects)

从性能的angular度来看,你应该使用“嵌套的foreach”或“lambda / linq查询”?

Expression.Lambda和查询生成在运行时,最简单的“Where”示例

我试图在运行时生成一个简单的Lambdaexpression式,没有运气…像这样的东西: var result = queryableData.Where(item => item.Name == "Soap") 这是我的例子类和夹具查询: public class Item { public int Id { get; set; } public string Name { get; set; } } IQueryable<Item> queryableData = …; 然后我在运行时生成一个lambdaexpression式, 正确的代码如下 : //"item" in "item =>…" var item = Expression .Parameter(typeof(Item), "item"); //property of my item, this is "item.Name" var prop […]

为一个genericsC#集合中的每个值调用一个函数

我有一个List集合中的整数值的集合。 我想为集合中的每个值调用一个函数,其中一个函数的参数是一个集合值。 没有在foreach循环中做这个…有没有办法用lambda / linqexpression式来实现呢? 像… myList.Where(p => myFunc(p.Value)); ? 在此先感谢,-s

Java8:lambdaexpression式和重载方法的歧义

我正在玩java8 lambda,我遇到了一个我没有想到的编译器错误。 假设我有一个函数interface A ,一个abstract class B和一个class C带有以A或B为参数的重载方法: public interface A { void invoke(String arg); } public abstract class B { public abstract void invoke(String arg); } public class C { public void apply(A x) { } public B apply(B x) { return x; } } 然后我可以传入一个lambda到c.apply ,并正确parsing为c.apply(A) 。 C c = new C(); c.apply(x […]

Java8的Lambda和例外

我想知道是否有人可以向我解释下面这个怪事。 我正在使用Java 8更新11。 给定这种方法 private <F,T> T runFun(Function<Optional<F>, T> fun, Optional<F> opt) { return fun.apply(opt) ; } 如果我首先构造一个函数Object,并将其传入上面的方法,则编译。 private void doesCompile() { Function<Optional<String>, String> fun = o -> o.orElseThrow(() -> new RuntimeException("nah")); runFun(fun, Optional.of("foo")); } 但是,如果我把这个函数作为一个lambda函数进行内联,编译器说 未报告的exceptionX; 必须被逮捕或宣布被抛出 private void doesNotCompile () { runFun(o -> o.orElseThrow(() -> new RuntimeException("nah")), Optional.of("foo")); } 更新 :原来的错误消息被maven缩写。 如果直接用javac编译,错误是: error: […]

什么叫/ cc?

我已经多次尝试了解延续的概念,并且呼吁/ cc 。 每一次尝试都是失败的。 有人可以解释我这些概念,理想情况下比维基百科或其他SOpost更实际的例子。 我有Web编程和面向对象的背景。 我也了解6502程序集,并与Erlang有一个小小的争执。 不过,我还是不能把头绕在call / cc上。