私はLINQをあまり使用していませんが、使用すればするほど、LINQがいかに強力であるかを実感します。境界のあるアイテムのプロパティから並べ替える場合は、LinqDataSource.OrderBy句を使用するのは明らかに簡単ですが、メソッドの戻り値に基づいてアイテムを並べ替える場合はどうでしょうか。このクラスを例にとってみましょう(風変わりなデザインは無視してください。これは私の主張を強調するために使用されているだけです)。
public class DataItem
{
private string Id { get; set; }
private int SortValue { get; set; }
public DataItem(string id, int sortValue)
{
this.Id = id;
this.SortValue = sortValue;
}
public int GetSortValue()
{
return SortValue;
}
}
LinqDataSourceでorderby式を設定して、GetSortValueから返された値(つまり、プロパティ以外のメンバーによる順序)を使用するが、DataItemクラスを変更しないようにする方法はありますか?