0

我有一个有点像这样的类模型:

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

我有一个MyModel名为的对象列表TheListOfModels和一个名为的 long 列表TheListOfIDs:我希望TheListOfModels按照与TheListOfIDs.

我想到的是一个循环,它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 回答