我有一个这样的类模型:
public class MyModel
{
long MyModelID { get; set; }
}
我有一个名为 TheListOfModels
的MyModel
对象列表和一个名为 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();