我想知道是否可以使用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表达式。在尝试对列表做出反应时,我是否需要预先知道是否可以使用其他内容?
答案 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);