在Func委托中使用List作为参数

时间:2017-11-01 19:59:28

标签: c#

我想知道是否可以使用List作为标准Func的参数。

示例代码(这不起作用):

date     app_id country val1 val2 val3 val4
2016-01-01  123 US       50   70   80   90
2016-01-02  123 US       60   80   90   100
2016-01-03  123 US       70   88   99   11

如果可能的话,我只想在Func中使用List作为参数。

E :可能的重复确实有助于解决问题。但是在我的问题中,我想知道如何在Func中使用List和Lambda表达式。在尝试对列表做出反应时,我是否需要预先知道是否可以使用其他内容?

1 个答案:

答案 0 :(得分:2)

我想您希望为列表中的每个元素执行委托。所以你也应该返回一个整数列表。

Func<int, int> f = x => x - 2;
Func<List<int>, List<int>> myFunc = x => x.Select(f).ToList();

现在你可以打电话给它:

var l = new List<int> { 3, 5, 4, 9 };
var result = myFunc(l);

查看我的fiddle

编辑:如果你想向x - 2提供Func - 部分,你还必须使用一个有三个通用类型参数的Func:一个用于列表,第二个用于表达式最后一个作为返回值:

Func<List<int>, Func<int, int>, List<int>> myFunc = (x, y) => x.Select(y).ToList();
var result = myFunc(l, x => x - 2);