在C#中,如何通过单独的int数组对对象集合进行排序?

leo*_*ora 2 c# sorting collections

我有一个Person对象的集合, 一个Person对象有一个id属性.

 var peopleList = new List<Person>();
 peopleList .Add(new Person(){Name = Joe, Id = 30};
 peopleList .Add(new Person(){Name = Tom, Id = 22};
 peopleList .Add(new Person(){Name = Jack, Id = 62};
Run Code Online (Sandbox Code Playgroud)

我现在有一个整数数组,表示我想要显示数组的顺序

 var list = new List<int>();
 list.Add(22);
 list.Add(62);
 list.Add(30);
Run Code Online (Sandbox Code Playgroud)

List数组对PeopleList集合进行排序的正确方法是什么?所以我订购了:

Tom, Jack, Joe
Run Code Online (Sandbox Code Playgroud)

Ser*_*rvy 7

创建人员对象的ID查找:

var peopleLookup = peopleList.ToDictionary(person => person.Id);
Run Code Online (Sandbox Code Playgroud)

然后,您可以浏览您的ID列表,将每个ID映射到一个人:

var query = list.Select(id => peopleLookup[id]);
Run Code Online (Sandbox Code Playgroud)