从单个查询的列表中返回索引和对象?

时间:2011-10-10 03:02:06

标签: c# linq list sql-order-by

我有List其中MyClass由3个字段组成,int id,double price和string name,我现在想通过desc得分来命令它并检索给定的对象及其位置,我怎么能得到这个吗

我想到的第一件事是:

var find = score.OrderByDescending(x => x.Price).FirstOrDefault(x => x.ID == id);

哪个能给我这个项目,但我仍然需要它是位置。

有没有办法返回找到的对象和列表中的位置?

我可以对结果进行预测,但我想知道LINQ或类似的方法是否有更好的方法。

1 个答案:

答案 0 :(得分:2)

投射到匿名类并使用Select()重载来获取索引:

var find = score.OrderByDescending(x => x.Score)
                .Select( (x,i) => new { Item = x, Position = i })
                .FirstOrDefault(x => x.Item.ID == id);