我怀疑这比我想的更简单!
我可以创建一个Func列表然后添加到它
var x = new List<Func<IBQCustomer, string>>();
x.Add(c => c.FullName);
如何在Func中添加额外的参数?当我尝试时出现错误
var y = new List<Func<IBQCustomer, OrderByDirection, string>>();
y.Add(...);
这可能吗?
我的目标是建立一个属性列表以及如何处理它们
错误:
y.Add(c => c.FullName, OrderByDirection.Asc);
No overload for Add that takes 2 arguments
答案 0 :(得分:3)
您可以使用以下多个参数声明匿名委托:
y.Add((customer, direction) => customer.FullName);
然后它会工作。无论调用列表中的每个代理是什么,都必须提供两个参数IBQCustomer
和OrderByDirection
。
答案 1 :(得分:0)
'OrderByDirection'枚举不是函数参数?在这种情况下,您可以使用以下内容:
var y = new List<Tuple<Func<IBQCustomer, string>, OrderByDirection>>();
y.Add(new Tuple<Func<IBQCustomer, string>, OrderByDirection>(c => c.FullName, OrderByDirection.Asc));
当然你也可以使用自定义类而不是'Tuple&lt;&gt;':
class MyClass
{
public Func<IBQCustomer, string> Function;
public OrderByDirection Direction;
}
或者你是否正在编写lambda表达式错误?这应该有效:
var y = new List<Func<IBQCustomer, OrderByDirection, string>>();
y.Add((c, d) => c.FullName);