適切に並べられた 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();
}