Sortiere eine Liste nach der anderen

Ich habe 2 Listenobjekte, eines ist nur eine Liste von Ints, das andere ist eine Liste von Objekten, aber die Objekte haben eine ID-Eigenschaft.

Was ich tun möchte, ist die Liste der Objekte nach ihrer ID in der gleichen Sortierreihenfolge wie die Liste der Ints zu sortieren.

Ich habe eine Weile herumgespielt und versucht, es zum Laufen zu bringen, bis jetzt keine Freude,

Hier ist was ich bisher habe ...

//**************************
//*** 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;
}   

Der springende Punkt dabei ist, dass ein Benutzer nach Mitgliedern sucht, die zunächst in zufälliger Reihenfolge angezeigt werden. Wenn er dann auf Seite 2 klickt, bleiben sie in dieser Reihenfolge und die nächsten 20 Ergebnisse werden angezeigt.

Ich habe über ICompare gelesen, das ich als Parameter in der Linq.OrderBy-Klausel verwenden kann, aber ich kann keine einfachen Beispiele finden.

Ich hoffe auf eine elegante, sehr einfache Lösung im LINQ-Stil, nun, ich kann immer hoffen.

Jede Hilfe wird am meisten geschätzt.

Antworten auf die Frage(12)

Ihre Antwort auf die Frage