J'ai 2 objets de la liste, on est juste une liste d'entiers, l'autre est une liste d'objets, mais les objets qu'il a un ID de propriété.
Ce que je veux faire est de trier la liste des objets par son ID dans le même ordre de tri dans la liste d'entiers.
Ive été jouer pour un certain temps maintenant d'essayer d'obtenir ce travail, jusqu'à présent, aucune joie,
Voici ce que j'ai jusqu'à présent...
//**************************
//*** 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;
}
Le point entier de ce qui est alors, quand un internaute fait une recherche pour les membres, au départ, ils s'affichent dans un ordre aléatoire, puis s'il clique sur la page 2, ils restent dans l'ordre et les 20 prochaines affichage des résultats.
J'ai lu sur le ICompare je peux l'utiliser comme paramètre dans le Linq.OrderBy clause, mais je ne trouve pas de simples exemples.
Je suis l'espoir d'un élégant, très simple LINQ style de solution, eh bien, je peux toujours espérer.
Toute aide est le plus apprécié
Truegilly