私はオブジェクトのプロパティ(ここではClient)に基づいて私に別個の値を抽出する次の関数を持っています。OrderByを文字列keySelectorで使用する
public List<DistinctValue> GetDistinctValues(string propertyName)
{
//how should I specify the keySelector ?
Func<string, object> keySelector = item => propertyName;
var list = new List<DistinctValue>();
var values = this.ObjectContext.Clients.Select(CreateSelectorExpression
(propertyName)).Distinct().OrderBy(keySelector);
int i = 0;
foreach (var value in values)
{
list.Add(new DistinctValue() { ID = i, Value = value });
i++;
}
return list;
}
private static Expression<Func<Client, string>> CreateSelectorExpression
(string propertyName)
{
var paramterExpression = Expression.Parameter(typeof(Client));
return (Expression<Func<Client, string>>)Expression.Lambda(
Expression.PropertyOrField(paramterExpression, propertyName),
paramterExpression);
}
public class DistinctValue
{
[Key]
public int ID { get; set; }
public string Value { get; set; }
}
これは、抽出する必要があるプロパティ値がわからないため、これを実行しています。 結果はソートされていません。
OrderByが正常に動作するように並べ替えを修正してもらえますか?
プロパティは文字列であり、並べ替える必要はありません。ソート順序を指定する必要はありません。
ありがとうございます。 ジョンです。
答えと説明をありがとうございました。それは多くの意味があります。再度、感謝します。 – Jonx