LINQ 分组依据,其中键是一个对象
本文关键字:一个对象 LINQ | 更新日期: 2023-09-27 18:34:33
>我有一个这个对象的数组:
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 文件动态加载。
我正在使用此代码进行分组,但它不起作用
var woListGrupped = this._workingOrderList.GroupBy(wo => wo.Category,
wo => wo,
(k, g) => new OdlByCategoryContract(k, g.ToList())
).ToList();
我该怎么做?
您需要删除wo => wo
var woListGrupped = this._workingOrderList.GroupBy(wo => wo.Category,
(k, g) => new OdlByCategoryContract(k, g.ToList())
).ToList();
正如@MarcinJuraszek正确指出的那样,除此之外,OdlByCategoryContract
还应实施Equals
和GetHashCode
,以便对列表进行适当的分组。