c# - 排除另一个 LINQ 查询中一个查询的 LINQ 结果

标签 c# linq

我有两个 linq 查询,查询两个不同的实体。一个实体包含所有仓库,另一个实体包含我不需要的仓库。

我使用此查询来获取所有我不需要的仓库:

var sysproWarehouses = from i in sysproSession.Query<InvWarehouse>()
                            group i by i.Warehouse
                            into g
                            select new
                            {
                                g.Key 
                            };

这是我想要获取我需要的所有仓库的查询:

var stockEvaluation = from ib in mapicsSession.Query<ItemBalance>()
                                  where //I guess it needs to be done here
                                  orderby w.Description
                                  group ib by w.Description
                                  into g
                                  select new
                                  {
                                      Warehouse = g.Key,
                                  };

基本上我只需要从第二个查询中排除第一个查询结果。如果这是一个简单的问题,我很抱歉,但我是初学者,所以...谢谢!

最佳答案

您可以执行以下操作:

var sysproWarehouses = from i in sysproSession.Query<InvWarehouse>()
                            group i by i.Warehouse
                            into g
                            select new
                            {
                                g.Key 
                            };

var stockEvaluation = from ib in mapicsSession.Query<ItemBalance>()
                        orderby w.Description
                        group ib by w.Description
                        into g
                        select new
                        {
                            g.Key,
                        };

现在,从 stockEvaluation 列表中排除 sysproWarehouses 列表项:

var result = stockEvaluation.Except(sysproWarehouses);

注意:-结果包含排除的项目

关于c# - 排除另一个 LINQ 查询中一个查询的 LINQ 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47177334/

相关文章:

linq - 查找子集合不包含项目的所有项目

c# - 在 C# 中使用反射自注册工厂

c# - 如何使用匿名 LINQ 结果填充 DataTable

c# - 如何在本地运行 Windows 10 IOT 应用程序?

c# - Bitmap.SetPixel 在 f# 中的行为比在 c# 中慢

linq - 需要一个 LINQ 代码示例来链接两个没有外键的表

c# - 如何使用 LINQ-to-XML 获取元素后的第一个元素?

c# - 带有选择下拉列表的 Blazor onchange 事件

c# - 从 Controller 返回局部 View ?

c# - 我在使用IQueryable <T>做错什么?