C# LINQ在inturn拥有收藏的收藏中查找最新项目!内部解释

C# LINQ在inturn拥有收藏的收藏中查找最新项目!内部解释,c#,linq,linq-to-sql,sql-order-by,linq-to-objects,C#,Linq,Linq To Sql,Sql Order By,Linq To Objects,有人能帮忙吗 我有一个产品集合,每个产品都有一个仓库集合,然后在仓库集合里面有一个位置集合 我需要退回我做得很好的所有产品,但我需要退回仓库集合中位置集合成员的locationWithStock 我迷路了 到目前为止我有这个想法,但它是错的。。因为StockDate不是仓库的成员,而是其集合的成员。我只需要StockDate的最新日期。。因此,我需要查看每个成员位置中有1个StockDate的每个StockDate,并只返回最新的StockDate var items = fro

有人能帮忙吗

我有一个产品集合,每个产品都有一个仓库集合,然后在仓库集合里面有一个位置集合

我需要退回我做得很好的所有产品,但我需要退回仓库集合中位置集合成员的locationWithStock

我迷路了

到目前为止我有这个想法,但它是错的。。因为StockDate不是仓库的成员,而是其集合的成员。我只需要StockDate的最新日期。。因此,我需要查看每个成员位置中有1个StockDate的每个StockDate,并只返回最新的StockDate

        var items = from j in products
              let locationWithStock =
                            j.Warehouses.OrderByDescending
                         (a => a.StockDate).FirstOrDefault()
                        select new 
                        {
                            Name = j.Name,
                            Warehouse = locationWithStock.Name
                        }
我希望我能把事情解释清楚

非常感谢您的帮助

谢谢

编辑

这是很难解释的:-)但我会尝试解释得更多一些

这是层次结构

产品

每个产品都有多个仓库

每个仓库有多个位置

我需要返回所有产品,每个产品必须包含位置名称

当存在多个仓库和多个位置时,查找位置的标准是什么

我必须搜索每个仓库,依次搜索每个位置。。。并从所有这些产品中返回我使用StockDate检测到的最新位置(仅1个)

产品
每个产品.仓库多个仓库
每个仓库。位置每个仓库中有多个位置

我假设无论什么返回我正在处理的所有产品(在您的问题中)都会转换为产品状态的某些条件,因此我用
表示该条件,其中p.doing==“fine”
where子句在下面的代码中,您可以适当修改

var stocks =
           from p in products
           from w in p.Warehouses
           from l in w.locations
           group l by l.Date into g
           let maxDate = g.Max(l1 => l1.Date)
           select new { Product=p.Name, Location= g.Where(l2 => l2.Date == maxDate) };

对不起,也许我解释得不对。。做得很好。。。意味着我目前正在退回所有没有问题的产品。。。。与代码无关…是的,每个产品您都是正确的产品。每个仓库有多个仓库。每个仓库有多个位置。locationWithStock需要包含位置的最新日期,但请记住,每个产品包含多个仓库,每个仓库包含多个位置。。该日期是该位置的成员。我没有从您的问题中获得确切的筛选条件。好的,我已更新了该问题。。。希望现在好一点1.很难解释