gpt4 book ai didi

c# - 从函数创建转换器的最佳方法是什么?

转载 作者:行者123 更新时间:2023-11-30 13:14:36 28 4
gpt4 key购买 nike

我想像这样应用 func 对象作为转换器:

Func<int, double> f = x => x / 2.5;
Converter<int, double> convert = f;
List<double> applied_list = new List<int>(){1, 2, 3}.ConvertAll(convert);

编译器给我这样的信息:

Error CS0029 Cannot implicitly convert type 'System.Func' to 'System.Converter'

使用函数作为转换器的最佳方式是什么?

最佳答案

这里有三个选项。按照我的首选顺序,它们是:

  • 开始使用 LINQ 而不是 ConvertAll:

    List<double> appliedList = new List { 1, 2, 3 }.Select(f).ToList();
  • 首先创建一个转换器:

    Converter<int, double> converter = x => x / 2.5;
    List<double> appliedList = new List { 1, 2, 3 }.ConvertAll(converter);
  • 如果您真的、真的必须使用委托(delegate)创建表达式从函数创建转换器:

    Func<int, double> f = x => x / 2.5;
    Converter<int, double> converter = new Converter<int, double>(f);
    List<double> appliedList = new List { 1, 2, 3 }.ConvertAll(converter);

最后一个选项创建了一个仅包装原始委托(delegate)的委托(delegate)。

关于c# - 从函数创建转换器的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39409652/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com