2016-02-15 56 views
0

我有此對象的數組:LINQ組由其中鍵是一個對象

public class WorkingOrderContract : BaseContract, IEquatable<WorkingOrderContract> 
{ 
    public string Id { get; set; } 
    public string Customer { get; set; } 
    public string CategoryId { get; set; } 
    public int ResourceId { get; set; } 
    public virtual ResourceContract Resource { get; set; } 
    public virtual CategoryContract Category { get; set; } 
    public WorkingOrderEnum EWorkingOrder { get; set; } 
    public TimeFlagEnum ETimeFlag { get; set; } 

    public bool Equals(WorkingOrderContract other) 
    { 
     return this.Id == other.Id; 
    } 
} 

通過JSON文件dinamically加載。

我使用此代碼組通過,但它不工作

var woListGrupped = this._workingOrderList.GroupBy(wo => wo.Category, 
           wo => wo, 
           (k, g) => new OdlByCategoryContract(k, g.ToList()) 
           ).ToList(); 

我該怎麼做呢?

+0

「它不工作」是什麼意思?你會得到什麼結果?你期望什麼? – HimBromBeere

回答

1

您需要刪除wo => wo

var woListGrupped = this._workingOrderList.GroupBy(wo => wo.Category, 
           (k, g) => new OdlByCategoryContract(k, g.ToList()) 
           ).ToList(); 

由於@MarcinJuraszek正確指出的,除了這個OdlByCategoryContract應實施EqualsGetHashCode以組列表正確。

+4

如果'CategoryContract'正確地實現了'Equals'和'GetHashCode',那麼這仍然是可行的。 – MarcinJuraszek

+1

同意@MarcinJuraszek – CarbineCoder

+1

解決方案發布MarcinJuraszek是正確的...謝謝 –

相關問題