给定一个对象列表,如何找到任何特定对象的索引?

时间:2010-10-12 15:53:26

标签: c#

好的,这可能有更好的方法,如果是这样,请告诉我!

我有一个Users列表(我系统中的实体框架实体)。每个User对象都具有某些属性。我需要逐个根据这些属性对谁进行排名(谁做了最多的销售等)

目前我认为最好的方法是使用LINQ的OrderBy扩展方法对我排名的属性重新排序List到新列表中。一旦完成,我应该能够在这个新订购的List中获得用户的位置,这将表明他们的排名。 (我知道当用户对所述属性具有相同的值时,它会变得更复杂)

问题是,如何?

谢谢!

1 个答案:

答案 0 :(得分:4)

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 });