给定一个对象列表,我如何找到任何特定对象的索引?
问题描述:
好吧,这可能是一个更好的方法,如果这是请让我知道!给定一个对象列表,我如何找到任何特定对象的索引?
我有一个列表Users
(我的系统中的实体框架实体)。每个User
对象都有一定的属性。我需要对所有基于这些属性的用户进行排名(谁赚取最多的销售额等等)
目前我正在考虑最好的方法是使用LINQ的OrderBy扩展方法对列表重新排序我正在将它列入新列表中。一旦完成,我应该能够在这个新排序的列表中获得用户的位置,这将表明他们的排名。 (我知道当用户对所述属性具有相同的值时它将变得更复杂)
问题是,怎么样?
谢谢!
答
var users = new List<User> { ... };
var userRanks = users
.OrderBy(user => user.Prop1)
.ThenBy(user => user.Prop2)
.Select((user, index) => new { User = user, Rank = index + 1 });
每当我看到像这样的LINQ示例,我想编写代码。上帝,我是一个极客。 – 2010-10-12 16:07:04
@Mike Hofer:每当我读到这样的问题时,都会发生这种情况:-) – 2010-10-12 16:34:02