Индексирование сущности - PullRequest
1 голос
/ 16 января 2012

В моем проекте 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();
    }

Не компилируется.

Есть идеи, как это сделать, пожалуйста? Спасибо заранее, Фрэнк

1 Ответ

0 голосов
/ 16 января 2012

Вы можете сделать это:

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

Хотя это немного более многословно, чем передача строки, по крайней мере, вы получаете проверку полей сортировки во время компиляции.

...