我有List其中MyClass由3个字段组成,int id,double price和string name,我现在想通过desc得分来命令它并检索给定的对象及其位置,我怎么能得到这个吗
我想到的第一件事是:
var find = score.OrderByDescending(x => x.Price).FirstOrDefault(x => x.ID == id);
哪个能给我这个项目,但我仍然需要它是位置。
有没有办法返回找到的对象和列表中的位置?
我可以对结果进行预测,但我想知道LINQ或类似的方法是否有更好的方法。
答案 0 :(得分:2)
投射到匿名类并使用Select()
重载来获取索引:
var find = score.OrderByDescending(x => x.Score)
.Select( (x,i) => new { Item = x, Position = i })
.FirstOrDefault(x => x.Item.ID == id);