using System.Collections.Generic;
using System.Linq.Expressions;
public static void Main()
List<string> dates = new List<string>();
new Type[] { typeof(string) });
MethodInfo toString = typeof(DateTime)
new Type[] { typeof(string) });
ParameterExpression list = Expression.Parameter(
ParameterExpression date = Expression.Parameter(
ConstantExpression format = Expression.Constant(
MethodCallExpression toStringCall = Expression.Call(
new Expression[] { format });
MethodCallExpression body = Expression.Call(
new Expression[] { toStringCall });
Expression<Action<List<string>, DateTime>> lambda = Expression.Lambda<Action<List<string>, DateTime>>(
new ParameterExpression[] { list, date });
Action<List<string>, DateTime> action = lambda.Compile();
action(dates, DateTime.Parse("1/1/2020"));
action(dates, DateTime.Parse("1/2/2020"));
action(dates, DateTime.Parse("2/1/2020"));
string datesAsString = string.Join(",", dates);
Console.WriteLine(datesAsString);