我有一个正确排序的 ID 的 int 数组。然后我有一个具有 ID 属性的无序对象数组。
我想按与 int 数组顺序匹配的 ID 对对象进行排序。
类似的东西
newObjectArray = oldObjectArray.MatchOrderBy(IdArray)
将是最可取的
我觉得我应该能够使用 LINQ 完成此任务,但我还没有找到方法。
我当前的方法似乎不是很有效,因为它必须查询集合的每次迭代。我怀疑足够大的集合会影响性能。这最终会发生。
这是我当前的实现:
//this is just dummy data to show you whats going on
int[] orderedIDs = new int[5] {5534, 5632, 2334, 6622, 2344};
MemberObject[] searchResults = MyMethodToGetSearchResults();
MemberObject[] orderedSearchResults = new MemberObject[orderedIDs.Count()];
for(int i = 0; i < orderedIDs.Count(); i++)
{
orderedSearchResults[i] = searchResults
.Select(memberObject => memberObject)
.Where(memberObject => memberObject.id == orderedIDs[i])
.FirstOrDefault();
}