2016-12-04 80 views
0

可查询的方法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

你可以用'OrderBy'和使用'ThenBy'后和使用'ThenBy'后和... –

+0

M.kazem Akhgary后我不通过的OrderBy和ThenBy问题。我需要每个呼叫中​​不会接受Property的方法。我需要创建在一次调用中接受多个Property的方法。 –

回答

0

我不认为在当前版本的C#中是可能的。也许有可能多次为你应用相同的方法。例如:

foo.MyMethod(u => u.MyProperty).MyMethod(u => u.MyProperty2); 
+0

我的解决方案是工作,但我调查以实现更好的解决方案。 –

相关问题