我有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