シンプルなコンソール アプリケーション。
class A
{
public int prop1 { get; set; }
public int prop2 { get; set; }
}
class Program
{
static IEnumerable<T> GenericOrderByDescending<T>(IEnumerable<T> arg, string property, int take)
{
return arg.OrderByDescending(x => x.GetType().GetProperty(property).GetValue(x, null)).Take(take);
}
static void Main(string[] args)
{
IEnumerable<A> arr = new List<A>()
{
new A(){ prop1 = 1, prop2 = 2},
new A(){prop1 = 2,prop2 =2},
new A(){prop1 = 3,prop2 =2},
new A(){prop1 = 441,prop2 =2},
new A(){prop1 = 2,prop2 =2}
};
foreach(var a1 in GenericOrderByDescending<A>(arr, "prop1", 3))
{
Console.WriteLine(a1.prop1);
}
}
}
U は、メソッドdb.Boks.AsEnumerable()
のパラメーターとして渡すことができます。GenericOrderByDescending<T>()
T の代わりに、アイテムのタイプを入力する必要がありますdb.Boks
。私の例では、クラスのインスタンスの配列をソートしていますA
が、エラーはありません。正常に動作します。私はあなたを正しく理解しましたか?