我有一个类似的类模型:
public class MyModel
{
long MyModelID { get; set; }
}
我有一个名为MyModel
的{{1}}个对象列表和一个名为TheListOfModels
的长整数列表:我希望TheListOfIDs
的排序方式与{{1}相同}}
我想到的是一个遍历TheListOfModels
的循环,并且在每次迭代时将相应的TheListOfIDs
添加到名为TheListOfIDs
的新列表中,然后将该列表重新分配给原始列表TheListOfModels
。
这是最好的方法吗?还是有针对此特定操作的linq语法?
感谢。
答案 0 :(得分:3)
这样做:
var q = (from i in TheListOfIDs
join m in TheListOfModels on i equals m.MyModelID
select m).ToList();
答案 1 :(得分:1)
这个效率不高,但它可以解决问题:
List<Model> models = ...
List<long> ids = ...
var dic = models.ToDictionary(x => x.ID, x => x);
var modelsByIds = ids.Select(x => dic[x]).ToList();