2014-01-12 69 views
0

我有一個名爲person的類,其中有一個名爲name的字符串和一個名爲wins的int。然後我有一個名爲「PS4」的人名單。我想要以勝利最多的人來訂購ps4名單。使用代理對列表排序

這似乎不起作用。

PS4.Sort(delegate(Person c1, Person c2) { return c1.Wins.CompareTo(c2.Wins); }); 

是代表權嗎?還是我需要使用orderby或其他東西?

回答

2

這是正確的,你可以用拉姆達語句簡化一下:

PS4.Sort((c1,c2) => c1.Wins.CompareTo(c2.Wins)); 
+0

嗯,它沒有似乎下令對我來說。 –

+2

爲什麼?你嘗試過嗎? –

0

使用:

PS4 = PS4.OrderBy(z=> z.wins).ToList(); 
+0

請注意,這會創建另一個第二個List對象。 List.Sort()避免創建另一個List對象,因此更可取。 – elgonzo

+0

你的意思是在這段代碼之後,PS4仍然未排序? – user3185569

+0

您的答案適用的相關性取決於特定的應用程序代碼。您將一個新的列表分配給PS4 **變量**。原始列表對象(可以在代碼中的其他地方引用)未被排序。 – elgonzo