2015-04-21 55 views
1

我不明白爲什麼這段代碼不會按字符串名稱排序我的數據列表。Linq排序按字符串不工作

public class GroupedRow 
{ 
    public int id { get; set; } 
    public string label { get; set; } 
    public decimal SumOfDays { get; set; } 
} 

var data = _dataService.GetData(); 

List<GroupedRow> result = data 
    .GroupBy(l => l.listItemID.Value) 
    .Select(cl => new GroupedRow 
    { 
     label = cl.First().ListItem.description, 
     SumOfDays = cl.Sum(c => c.timeAssigned.Value)/8.0m 
    }).ToList(); 

result.OrderByDescending(x => x.label).ToList(); 

我想按標籤排序,這是一個字符串,但是,它永遠不會工作。

任何人都可以看到我做錯了什麼?

在此先感謝。

回答

4

您正在訂購清單並使用ToList()創建新清單,但是您並未將返回值分配給任何事物,因此您將丟失它。

result = result.OrderByDescending(x => x.label).ToList(); 

List<GroupedRow> result = data 
    .GroupBy(l => l.listItemID.Value) 
    .Select(cl => new GroupedRow 
    { 
     label = cl.First().ListItem.description, 
     SumOfDays = cl.Sum(c => c.timeAssigned.Value)/8.0m 
    }) 
    .OrderByDescending(x => x.label) 
    .ToList(); 
:Eiter通過修復