创建接受字段名称列表的方法的最佳方法

时间:2016-12-04 12:30:39

标签: c# generics lambda expression

Queryable有方法OrderBy(这个IQueryable源,Expression> keySelector)。

我需要这样一种输入多键而不是一键的方法。 OrderBy方法KeySelector用于一个字段,但我的方法将接受许多字段名称。

我创建的方法如下,但我不确定这是最好的方法:

class Foo<T>
{
    public void MyMethod(Expression<Func<T, Object>> selector)
    {
        List<string> props = ((NewExpression)selector.Body).Members.Select(p => p.Name).ToList();
       //some work with props
    }
}

Foo<ClassA> foo = new Foo<ClassA>();
foo.MyMethod(u => new { u.MyProperty, u.MyProperty2 });

存在比这更好的模式吗?或者这是正确的。

0 个答案:

没有答案