我如何在Action中传递一个参数?
private void Include(IList<string> includes, Action action) { if (includes != null) { foreach (var include in includes) action(<add include here>); } } 我想这样称呼
 this.Include(includes, _context.Cars.Include(<NEED TO PASS each include to here>)); 
这个想法是通过每个包括的方法。
 如果你知道你想要传递什么参数,请为这个types使用一个Action<T> 。 例: 
 void LoopMethod (Action<int> code, int count) { for (int i = 0; i < count; i++) { code(i); } } 
如果你想把这个parameter passing给你的方法,使这个方法是通用的:
 void LoopMethod<T> (Action<T> code, int count, T paramater) { for (int i = 0; i < count; i++) { code(paramater); } } 
和来电显示:
 Action<string> s = Console.WriteLine; LoopMethod(s, 10, "Hello World"); 
更新。 你的代码应该是这样的:
 private void Include(IList<string> includes, Action<string> action) { if (includes != null) { foreach (var include in includes) action(include); } } public void test() { Action<string> dg = (s) => { _context.Cars.Include(s); }; this.Include(includes, dg); } 
 您正在寻找带有参数的Action<T> 。 
肮脏的把戏:你可以使用lambdaexpression式来传递任何代码,包括调用参数。
 this.Include(includes, () => { _context.Cars.Include(<parameters>); });