在此示例中,我们如何编写高阶函数?

卡尼码

我只是试图传递一个lambda函数,该函数导致一个字符串通常填充一种特殊的查找列表。我正在尝试使用高阶函数重写一些代码。问题在于该Add方法不喜欢该keySelector功能。这是代码,请问如何获取它:

public static KeyedLookupList<TSource> Slug<TSource>(this List<TSource> items, 
                                                     Func<TSource, string> keySelector)
{
    var keyedLookupList = new KeyedLookupList<TSource>();

    foreach (var item in items)
    {
        keyedLookupList.Add(keySelector, item);
    }

    return keyedLookupList;
}

这是Add方法:

public override void Add(string key, TValue value)
{
    base.Add(new KeyValuePair<string, TValue>(key, value));
}

编译器给出以下错误:

Error   CS1503  Argument 1: cannot convert from 'System.Func<TSource, string>' to 'string'

由于@peeyush singh而解决:

public static KeyedLookupList<TSource> Slug<TSource>(this List<TSource> items,
        Func<TSource, string> keySelector)
    {
        var keyedLookupList = new KeyedLookupList<TSource>();

        foreach (var item in items)
        {
            keyedLookupList.Add(keySelector(item), item);
        }

        return keyedLookupList;
    }
佩尤什·辛格

除了传递函数,您还需要传递评估后的函数,就像

keyedLookupList.Add(keySelector(item), item);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我们如何编写在C ++中返回多个值的函数

在此日期范围查询示例中,我们可以期望什么?

我们如何在IntelliJ IDEA中编写我们自己的代码模板文件

我们如何在 Kotlin Exposed 中编写查询?

像我们为函数编写的那样,如何用c ++编写类库

在此示例中,为什么我们返回一个指针而不是一个值?

在此代码示例中,我们运行多少个线程?谁能画出流程图?

Scala集合:为什么我们需要一个case语句来提取高阶函数中的值元组?

如何在 Django restframework 中运行我们的函数

我们如何使用下面的set构造函数示例构造set元素?

我们如何调用与赛普拉斯测试不同的文件编写的函数?

我们如何为动态打印的锚标记编写访问函数

我们如何编写具有给定素数的多项式哈希函数

我们可以在SQL Server中编写外键时使用CAST函数吗

如何对我们使用clearInterval()函数?

我们如何在Spring中编写Mongo DB查询

我们如何在 AWS Cloudformation 中编写 If (Condtion) do (X and Y) else (do A and B)

我们如何在Kafka中快速编写单个消息(非批处理)?

我们如何在iTextSharp中编写Unicode印地语文本?

如何在TypeScript中编写通用的,类型安全的高阶函数?

如何在 Lua 中编写 sum(f,n) 的高阶函数?

为什么我们需要在打字稿中编写函数的泛型?例如函数 fill<IDontKnow>(){}

如何用Java编写我们自己的标记接口?

我们如何编写下面的 SQL 查询

我们如何编写用于打印的单元测试?

我们可以在PowerShell中编写星级程序吗?

我们如何在Java中定义函数的矢量,使函数记住其参数?

我们如何编写通用函数来检查Serde序列化和反序列化?

我们如何在C ++中从子类中调用父级重载的构造函数?