2016-12-04 65 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

我的解決方案是工作,但我調查以實現更好的解決方案。 –