我有2個列表對象,其中一個是整數列表,另一個是對象列表,但對象具有ID屬性。排序一個列表另一個
我想要做的就是按照與整數列表相同的排序順序對它的ID列表進行排序。
我一直玩了一段時間,現在試圖得到它的工作,到目前爲止,還沒有喜悅,
這裏是我迄今爲止...
//**************************
//*** Randomize the list ***
//**************************
if (Session["SearchResultsOrder"] != null)
{
// save the session as a int list
List<int> IDList = new List<int>((List<int>)Session["SearchResultsOrder"]);
// the saved list session exists, make sure the list is orded by this
foreach(var i in IDList)
{
SearchData.ReturnedSearchedMembers.OrderBy(x => x.ID == i);
}
}
else
{
// before any sorts randomize the results - this mixes it up a bit as before it would order the results by member registration date
List<Member> RandomList = new List<Member>(SearchData.ReturnedSearchedMembers);
SearchData.ReturnedSearchedMembers = GloballyAvailableMethods.RandomizeGenericList<Member>(RandomList, RandomList.Count).ToList();
// save the order of these results so they can be restored back during postback
List<int> SearchResultsOrder = new List<int>();
SearchData.ReturnedSearchedMembers.ForEach(x => SearchResultsOrder.Add(x.ID));
Session["SearchResultsOrder"] = SearchResultsOrder;
}
這樣做的整點因此當用戶搜索會員時,最初他們以隨機順序顯示,然後如果他們點擊第2頁,他們將保持該順序,並顯示下20個結果。
我一直在閱讀有關ICompare我可以用作Linq.OrderBy子句中的參數,但我找不到任何簡單的示例。
我希望有一個優雅,非常簡單的LINQ風格的解決方案,以及我一直希望的。
任何幫助最受讚賞。這樣做的
你有沒有考慮在兩個列表之間執行linq連接,然後進行排序? – RQDQ 2010-10-15 20:39:03
提示:您需要將原始順序保存爲字典:id 2索引。 – 2010-10-15 20:40:06
http://stackoverflow.com/questions/3470098/linq-list-sort-based-on-another-list – goodeye 2012-11-28 00:11:42