按长整型列表对对象列表进行排序



我有一个这样的类模型:

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

我有一个名为 TheListOfModelsMyModel对象列表和一个名为 TheListOfIDs 的长整型列表:我希望TheListOfModels按照与TheListOfIDs相同的顺序排序。

我想到的是一个遍历TheListOfIDs的循环,并在每次迭代时将相应的TheListOfModels添加到名为 SortedList 的新列表中,然后将该列表重新分配给原始TheListOfModels

这是执行此操作的最佳方法,还是此特定操作的 linq 语法?

谢谢。

这将做到这一点:

var q = (from i in TheListOfIDs
        join m in TheListOfModels on i equals m.MyModelID
        select m).ToList();

这个效率不太高,但它可以解决问题:

List<Model> models = ...
List<long> ids = ...
var dic = models.ToDictionary(x => x.ID, x => x);
var modelsByIds = ids.Select(x => dic[x]).ToList();

最新更新