編輯:它仍然非常模糊,這個問題是什麼一回事,但它聽起來就像我們在內存中的集合,而不是處理LINQ到SQL等
如果使用OrderBy
問題它不會就地對列表進行排序,您應該使用List<T>.Sort()
,可能會傳入自定義比較器。
我的MiscUtil項目有幾個幫助類型,可以幫助你。例如:
var comparison = ProjectionComparer<ModelType>.Create(m => m.SomeProperty)
.ThenBy(m => m.SomeOtherProperty);
list.Sort(comparison);
如果你正在使用LINQ to SQL,你已經有了一個data context,你可以使用:
public List<TSource, TKey> OrderThisList<TSource, TKey>(
Expression<Func<TSource, TKey>> ordering)
{
return dataContext.GetTable<TSource>()
.OrderBy(ordering)
.ToList();
}
現在很明顯,需要類型參數,而你只想指定一個。有很多種方法 - 基本上你最終需要一個通用類型和一個方法一個類型參數(TKey
)可以推斷。例如:
var list = Orderer<ModelType>.Create(dataContext)
.OrderThisList(m => m.SomeProperty);
這有點圓這房子雖然考慮到OrderBy
已經可用...你能解釋一下你爲什麼要這樣,也什麼LINQ提供程序參與?
數據意味着來自哪裏? – 2011-04-13 06:39:11
好問題!編輯 – 2011-04-13 06:45:15
如果您已經通過'List',爲什麼不直接使用'OrderBy'?或者你是否試圖對列表進行排序?請澄清你的問題。 –
2011-04-13 06:46:38