我有 listA 和 listB。
ListA 是一个具有 ListB 对象 ID(foreignKey)的对象列表。 ListB 是一个对象列表,它具有 OrderBy listA 属性。
如何使用简单的 Linq 按 ListB 属性对 ListA 进行排序?
class OrderList
{
public void OrderByDate(List<ProductionProgress> progressList,
List<Production> productionList)
{
//Order progressList by productionList.ProductionDate
}
public class ProductionProgress
{
public int ProductionID { get; set; }
public string Progress { get; set; }
}
public class Production
{
public int ID { get; }
public string Description { get; set; }
public DateTime ProductionDate { get; set; }
}
}
最佳答案
您可以使用此查询:
listA = listA
.OrderBy(a => listb.FirstOrDefault(b => b.ID == a.objectB_id)?.Date ?? DateTime.MaxValue)
.ToList();
这可能不是最有效的方法,但它是安全的。因为如果您使用Join
,并且存在重复的 OBjectB(根据 ID),您可能会获得重复的 ObjectA 实例。
关于c# - 使用来自另一个列表的参数对一个列表进行排序,并使用可连接的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70958893/