2010-10-12 65 views
0

好吧,這可能是一個更好的方法,如果這是請讓我知道!給定一個對象列表,我如何找到任何特定對象的索引?

我有一個列表Users(我的系統中的實體框架實體)。每個User對象都有一定的屬性。我需要對所有基於這些屬性的用戶進行排名(誰賺取最多的銷售額等等)

目前我正在考慮最好的方法是使用LINQ的OrderBy擴展方法對列表重新排序我正在將它列入新列表中。一旦完成,我應該能夠在這個新排序的列表中獲得用戶的位置,這將表明他們的排名。 (我知道當用戶對所述屬性具有相同的值時它將變得更復雜)

問題是,怎麼樣?

謝謝!

回答

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

每當我看到像這樣的LINQ示例,我想編寫代碼。上帝,我是一個極客。 – 2010-10-12 16:07:04

+0

@Mike Hofer:每當我讀到這樣的問題時,都會發生這種情況:-) – 2010-10-12 16:34:02

相關問題