¿Buscando un elemento en una lista anidada dentro de otra lista basado en un valor de propiedad en C# utilizando LINQ?
¿Existe alguna forma de buscar un elemento en una lista anidada en otra lista, basándose en el valor de una propiedad utilizando LINQ?
Dados los siguientes modelos a continuación, para un pedido determinado (variable customerOrder), quiero devolver la fecha de pedido más temprana (Date) donde el día es “Domingo”.
modelos:
public class Order
{
public int Id { get; set; }
public List
}
public class OrderLine
{
public string Description { get; set; }
public List
}
public class OrderDate
{
public DateTime Date { get; set; }
public string Day { get; set; }
}
código:
var dates = new List
foreach(var a in customerOrder.OrderLines)
{
var orderDate = a.OrderDates.Where(x => x.DateTypeId.Equals(“Sunday”)).FirstOrDefault();
dates.Add(orderDate.ActualDate);
}
dates.OrderBy(d => d.Date);
return dates.FirstOrDefault();
davy.ai
Con LINQ, puedes buscar un elemento en una lista que está anidada en otra lista basada en el valor de una propiedad de la siguiente manera:
csharp
var earliestSundayDate = customerOrder.OrderLines
.SelectMany(x => x.OrderDates)
.Where(x => x.Day == “Sunday”) // “Domingo” si se trata de la traducción en español
.OrderBy(x => x.Date)
.FirstOrDefault();