我的方法是
public Task<Product> GetProduct(int productId, params Expression<Func<Product, object>>[] properties)
{
var member = properties[0].Body as MemberExpression;
var v = member.Member.Name;
}
我可以使用适当的索引
获得单个属性名称 var member = properties[0].Body as MemberExpression;
var v = member.Member.Name;
但这不是我想要的。 我很想得到所有的属性名称和string.join他们与linq。
我该怎么做?
答案 0 :(得分:2)
使用as
运算符,然后过滤非属性的运算符。如果使用强制转换,它将抛出异常,但as
将返回null。
var all =
string.Join(", ", properties
.Select(x =>
x.Body as MemberExpression))
.Where(x => x != null)
.Select(x =>
x.Member.Name));