using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; namespace Kean.Infrastructure.Database { /// /// 表达式参数 /// internal sealed class ExpressionParameters : Dictionary { /// /// 构造函数 /// internal ExpressionParameters(Expression expression, params string[] alias) { if (expression is LambdaExpression le) { if (le.Parameters.Count(p => p.Name == "_") > 1) { for (int i = 0; i < le.Parameters.Count; i++) { if (le.Parameters[i].Name != "_") { Add(le.Parameters[i].Name, alias[i]); } } } else { for (int i = 0; i < le.Parameters.Count; i++) { Add(le.Parameters[i].Name, alias[i]); } } } } } }