linq - 使用类的最大值 LINQ

标签 linq c#-4.0

我有这门课

public class Materiale
{
    public string IdMateriale { get; set; }
    public string GenereMateriale { get; set; }
    public string Categoria { get; set; }
    public string Modello { get; set; }
    public string Tipo { get; set; }
    public string NumSerie { get; set; }
    public int Anno { get; set; }
    public string DittaCostruttrice { get; set; }
    public string Note { get; set; }
    public List<Controllo> Controlli = new List<Controllo>();
}

public class Controllo
{
    public string IdControllo { get; set; }
    public DateTime DataControllo { get; set; }
    public string IdMateriale { get; set; }
    public string Utente { get; set; }
    public string Stato { get; set; }
    public string Note { get; set; }
}

我想查询过滤“Controlli”的“Materiale”列表。我需要检索“Materiale”类的所有属性和“Controllo”类的一个属性(名为“Stato”的属性)。从“Controlli”列表中,我需要具有最新“DataControllo”属性的列表。

我在 LINQ 查询中尝试此操作,但收到错误(Max 在当前上下文中不存在)

List<Materiale> m = new List<Materiale>();

List<Materiale> m2 = (from ma in m
                      from c in ma.Controlli
                      where c.DataControllo == Max(c.DataControllo)                                  
                      select new
                      {
                           ma, c.Stato
                      }).ToList();

谁能帮帮我

最佳答案

@Christos 是正确的,这是我在查询语法中使用 let 的版本:-

List<Materiale> m2 = from m in MaterialeList
                     let RecentControllo = m.OrderByDescending(x => x.DataControllo)
                                            .FirstOrDefault()
                     select new Materiale
                     {
                         IdMateriale = m.IdMateriale,
                         GenereMateriale = m.GenereMateriale,
                         //Similarily other properties of  Materiale here
                         Stato = RecentControllo != null ? RecentControllo.Stato : ""
                     }).ToList();

关于linq - 使用类的最大值 LINQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32984742/

相关文章:

c# - LINQ 中的 First() 会导致急切加载还是延迟加载?

c# - Linq - 按多个表分组

c# - 用一列对 Linq 列表进行排序

.net - 未知软件异常 0xe0434352

c# - 如何获取最后插入的记录

c# - 使用 C# Linq 将对象插入到列表中

c# - 批量更新字典内多个记录的属性 (VB.NET/C#)

c# - 如何使用 C#4.0 在 contextmenustrip 中添加子菜单项?

c# - 使用 JSON 数据填充通用列表后,手动将成员添加到通用列表中

c# - 解析高级 CSV 文件