2009-04-14 30 views
2

を置き換えるためにラムダ式を使用する方法:代わりに呼び出すの文字列パラメータ

var shows = _repository.ListShows(s => s.PublishDate); 

var shows = _repository.ListShows("PublishDate"); 

を公開日付順にオブジェクトのコレクションを返すために、私はこのような構文を使用したいと思います

ラムダを引数として利用するためには、何を書く必要がありますか?そのメソッド内

答えて

5
public IEnumerable<Show> ListShows(Func<Show, string> stringFromShow) 
{ 

} 

、あなたのリポジトリにあなたのListShows方法は次のようになります。

string str = stringFromShow(show); 
1
var shows = _repository.OrderBy(s=>s.PublishDate); 
1

を使用します。

public static IEnumerable<Show> ListShows(Comparison<Show> comparison) 
{ 
    List<Show> shows = new List<Show>(); 
    ... code here ... 
    shows.Sort(comparison); 
    return shows; 
} 

その後、あなたは次のことを行うためにラムダを使用することができます(これはあなたの例ほど単純ではありませんが、動作します):

ListShows((first, second) => first.PublishDate.CompareTo(second.PublishDate)); 
関連する問題