У меня есть 2 объекта списка, один - только список int, другой - список объектов, но объекты имеют свойство ID.
Что я хочу сделать, так это отсортировать список объектов по его идентификатору в том же порядке сортировки, что и список int.
Я играл некоторое время, пытаясь заставить его работать, до сих пор нет радости,
Вот что я до сих пор...
//**************************
//*** 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, и я всегда надеюсь.
Любая помощь наиболее ценится.