我有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风格的解决方案,我总是可以希望。
任何帮助是最感激的。