0

私はこのようなクラスモデルを持っています:

public class MyModel
{
   long MyModelID { get; set; }
}

MyModelと呼ばれるオブジェクトのリストとと呼ばTheListOfModelsれるlongのリストがあります:と同じ順序で並べ替えTheListOfIDsたいです。TheListOfModelsTheListOfIDs

私が念頭に置いているのは、を通過するループでTheListOfIDsあり、各反復で、TheListOfModelsと呼ばれる新しいリストに対応するものを追加し、SortedListそのリストを元のリストに再割り当てしますTheListOfModels

これはそれを行うための最良の方法ですか、それともこの特定の操作のためのlinq構文がありますか?

ありがとう。

4

2 に答える 2

3

これでできます:

var q = (from i in TheListOfIDs
        join m in TheListOfModels on i equals m.MyModelID
        select m).ToList();
于 2012-10-03T17:19:50.647 に答える
1

これはあまり効率的ではありませんが、うまくいきます:

List<Model> models = ...
List<long> ids = ...

var dic = models.ToDictionary(x => x.ID, x => x);
var modelsByIds = ids.Select(x => dic[x]).ToList();
于 2012-10-03T17:08:32.643 に答える