标签: lambda

使用lambda表达式将对象列表从一种类型转换为另一种类型

我有一个foreach循环读取一种类型的对象列表并生成一个不同类型的对象列表.我被告知lambda表达式可以达到相同的效果.

var origList = List<OrigType>(); // assume populated
var targetList = List<TargetType>(); 

foreach(OrigType a in origList) {
    targetList.Add(new TargetType() {SomeValue = a.SomeValue});
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激 - 我是lambda和linq的新手谢谢,s

c# generics lambda

202
推荐指数
7
解决办法
21万
查看次数

将Java Stream过滤为1并且只有1个元素

我正在尝试使用Java 8 Stream来查找a中的元素LinkedList.但是,我想保证过滤条件只有一个匹配.

拿这个代码:

public static void main(String[] args) {

    LinkedList<User> users = new LinkedList<>();
    users.add(new User(1, "User1"));
    users.add(new User(2, "User2"));
    users.add(new User(3, "User3"));

    User match = users.stream().filter((user) -> user.getId() == 1).findAny().get();
    System.out.println(match.toString());
}
Run Code Online (Sandbox Code Playgroud)
static class User {

    @Override
    public String toString() {
        return id + " - " + username;
    }

    int id;
    String username;

    public User() {
    }

    public User(int id, String username) {
        this.id = id;
        this.username = username;
    }

    public void setUsername(String username) …
Run Code Online (Sandbox Code Playgroud)

java lambda java-8 java-stream

202
推荐指数
13
解决办法
16万
查看次数

我在哪里标记lambda表达式异步?

我有这个代码:

private async void ContextMenuForGroupRightTapped(object sender, RightTappedRoutedEventArgs args)
{
    CheckBox ckbx = null;
    if (sender is CheckBox)
    {
        ckbx = sender as CheckBox;
    }
    if (null == ckbx)
    {
        return;
    }
    string groupName = ckbx.Content.ToString();

    var contextMenu = new PopupMenu();

    // Add a command to edit the current Group
    contextMenu.Commands.Add(new UICommand("Edit this Group", (contextMenuCmd) =>
    {
        Frame.Navigate(typeof(LocationGroupCreator), groupName);
    }));

    // Add a command to delete the current Group
    contextMenu.Commands.Add(new UICommand("Delete this Group", (contextMenuCmd) =>
    {
        SQLiteUtils slu = new SQLiteUtils(); …
Run Code Online (Sandbox Code Playgroud)

c# resharper lambda async-await windows-store-apps

199
推荐指数
3
解决办法
11万
查看次数

如何将具有相同类型项目的列表列表合并到单个项目列表中?

问题很混乱,但如下面的代码所述,它更加清晰:

   List<List<T>> listOfList;
   // add three lists of List<T> to listOfList, for example
   /* listOfList = new {
        { 1, 2, 3}, // list 1 of 1, 3, and 3
        { 4, 5, 6}, // list 2
        { 7, 8, 9}  // list 3
        };
   */
   List<T> list = null;
   // how to merger all the items in listOfList to list?
   // { 1, 2, 3, 4, 5, 6, 7, 8, 9 } // one list
   // list = ??? …
Run Code Online (Sandbox Code Playgroud)

c# linq lambda

190
推荐指数
4
解决办法
8万
查看次数

匿名递归PHP函数

是否可以使用递归和匿名的PHP函数?这是我试图让它工作,但它没有传递函数名称.

$factorial = function( $n ) use ( $factorial ) {
    if( $n <= 1 ) return 1;
    return $factorial( $n - 1 ) * $n;
};
print $factorial( 5 );
Run Code Online (Sandbox Code Playgroud)

我也知道这是实现阶乘的一种不好的方法,它只是一个例子.

php recursion lambda closures anonymous-function

190
推荐指数
3
解决办法
3万
查看次数

帮助C#开发人员理解:什么是monad?

这些天有很多关于单子的讨论.我已经阅读了一些文章/博客文章,但我不能用他们的例子来完全掌握这个概念.原因是monad是一个函数式语言概念,因此这些例子都是我没有使用过的语言(因为我没有深入使用过函数式语言).我无法深入掌握语法以完全遵循这些文章......但我可以告诉它有一些值得理解的东西.

但是,我非常了解C#,包括lambda表达式和其他功能特性.我知道C#只有一部分功能特性,所以monad不能用C#表示.

但是,肯定有可能传达这个概念吗?至少我希望如此.也许您可以将C#示例作为基础,然后描述C#开发人员希望他可以从那里做什么,但不能,因为该语言缺乏函数式编程功能.这太棒了,因为它会传达monad的意图和好处.所以这就是我的问题:你可以给一个C#3开发人员提供monad的最佳解释是什么?

谢谢!

(编辑:顺便说一下,我知道SO上至少有3个"什么是monad"问题.然而,我遇到了同样的问题......所以这个问题需要imo,因为C#-developer焦点.谢谢.)

c# monads lambda c#-3.0

186
推荐指数
3
解决办法
3万
查看次数

将捕获lambda作为函数指针传递

是否可以将lambda函数作为函数指针传递?如果是这样,我必须做错了,因为我收到编译错误.

请考虑以下示例

using DecisionFn = bool(*)();

class Decide
{
public:
    Decide(DecisionFn dec) : _dec{dec} {}
private:
    DecisionFn _dec;
};

int main()
{
    int x = 5;
    Decide greaterThanThree{ [x](){ return x > 3; } };
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我尝试编译它时,我得到以下编译错误:

In function 'int main()':
17:31: error: the value of 'x' is not usable in a constant expression
16:9:  note: 'int x' is not const
17:53: error: no matching function for call to 'Decide::Decide(<brace-enclosed initializer list>)'
17:53: note: candidates are: …
Run Code Online (Sandbox Code Playgroud)

c++ lambda function-pointers c++11

186
推荐指数
4
解决办法
12万
查看次数

179
推荐指数
2
解决办法
7万
查看次数

Java SE 8是否有Pairs或Tuples?

我正在玩Java SE 8中的惰性函数操作,我想要一个对/元组map的索引,然后基于第二个元素,最后只输出索引.i(i, value[i])filtervalue[i]

我是否仍然要忍受这个问题:Java中的C++ Pair <L,R>相当于什么?在lambdas和溪流的大胆新时代?

更新:我提供了一个相当简化的示例,其中有一个由@dkatzel提供的简洁解决方案,其中一个答案如下.但是,它没有概括.因此,让我添加一个更一般的例子:

package com.example.test;

import java.util.ArrayList;
import java.util.stream.IntStream;

public class Main {

  public static void main(String[] args) {
    boolean [][] directed_acyclic_graph = new boolean[][]{
        {false,  true, false,  true, false,  true},
        {false, false, false,  true, false,  true},
        {false, false, false,  true, false,  true},
        {false, false, false, false, false,  true},
        {false, false, false, false, false,  true},
        {false, false, false, false, false, false}
    };

    System.out.println(
        IntStream.range(0, …
Run Code Online (Sandbox Code Playgroud)

java lambda functional-programming java-8 java-stream

174
推荐指数
8
解决办法
19万
查看次数

Java"此语言级别不支持lambda表达式"

我正在测试Java 8的一些新功能,并将示例复制到我的IDE(Eclipse最初,然后是IntelliJ),如下所示:http: //docs.oracle.com/javase/tutorial/java/javaOO/examples/RosterTest. java的

Eclipse没有为lambda表达式提供任何支持,并且IntelliJ不断报告错误"在此语言级别不支持Lambda表达式".我想知道这是我的安装,代码或支持的问题.

java lambda intellij-idea java-8

173
推荐指数
9
解决办法
15万
查看次数