Моя модель:Сортировка списка <T> другой список <T>
class Person
{
public int Id {get; set; }
public string Name {get; set; }
}
У меня есть две коллекции. И я хотел бы сортировать toBeSortedList
как etalonList
:
List<Person> etalonList = new List<Person>()
{
new Person() { Id=10, Name="Jon"},
new Person() { Id=4, Name="Ben"},
new Person() { Id=11, Name="Magnus"},
new Person() { Id=8, Name="Joseph"},
};
List<Person> toBeSortedList = new List<Person>()
{
new Person() { Id=11, Name="Magnus"},
new Person() { Id=4, Name="Ben"},
new Person() { Id=10, Name="Jon"},
new Person() { Id=8, Name="Joseph"},
};
Я пробовал:
var orderedByIdList = tobeSortedList.OrderBy(x => etalonList.IndexOf(x.Id));
Но я встретил такую ошибку:
cannot convert from 'int' to 'SOConsoleApplication.Person'
Может быть, у вас есть еще предложения ?
tobeSortedList.OrderBy (х => etalonList.IndexOf (x.Id)) ToList();. – CodeConstruct
@CodeConstruct Это тоже не сработает. –
Вы должны отдать это классу (Лицо) – CodeConstruct