2012-01-16 18 views
1

私のSilverlightプロジェクトでは、すべて同じメソッド「Tester()」が必要な多くのビューがあります。明らかに、私はこのメソッドを再利用可能にしたいが、私はそこに着くだけではない。エンティティの索引付け

は私が持っていることはこれです:

void Tester(IList<MyEntity> list) 
    { 
     var sortedlist=list.OrderBy(me=>me.Sortkey).ToList(); 
    } 

これはだけMyEntityため、正常に動作します。私が本当に欲しい

は基本的にこれです:

void Tester<T>(IList<T> list, string mySortField) 
    { 
     var sortedlist=list.OrderBy("mySortField").ToList(); 
    } 

はコンパイルされません。

どうすればいいですか?

void Tester<T>(IList<T> list, Func<T, object> mySort) { 
    var sortedlist=list.OrderBy(mySort).ToList(); 
} 
... 
Tester<MyEntity>(list, t => t.mySortField); 

それはもう少し詳細な文字列を渡すよりもですが、少なくともあなたがソートフィールドのコンパイル時にチェックを取得:事前に Thxを、フランク

+1

回答が必要な@Haris http://stackoverflow.com/questions/41244/dynamic-linq-orderby/233505#233505 –

+0

@ハリスを見てください。あなたはそれをしない場合:) – DanTheMan

+0

@ user24601先に行く私はそれを行うにはあまりにも怠惰です;) –

答えて

0

あなたはこれを行うことができます。