c# - LINQ 两个 Where 子句

标签 c# linq

有人知道我如何链接 where 子句吗?

我想通过在第二个结果中找到的项目来过滤我的主列表中的项目。

我有以下示例代码

@foreach (var artikel in Controller.Artikel
    .Where(x => x.LieferantenArtikel
                .Where(y => y.Lieferant.LieferantId == bestellung.LieferantId)
)
{
    <option value="@artikel.Artikelnummer">@artikel.Artikelnummer</option>
}

第一个 .Where 只是访问我的对象的列表,它有我需要的真正检查。

最佳答案

您将 .Where() 链接到 .Where() 的方式在技术上是正确的。问题是当前情况下的外部 .Where() 不会评估为 bool 值。然而,这是一个要求。 .Where() 的目的是为生成该集合的子集的集合定义过滤器。您可以检查 .Any() 项是否满足该条件:

@foreach (var artikel in Controller.Artikel
    .Where(x => x.LieferantenArtikel
                .Any(y => y.Lieferant.LieferantId == bestellung.LieferantId))
)
{
    <option value="@artikel.Artikelnummer">@artikel.Artikelnummer</option>
}

.

关于c# - LINQ 两个 Where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64318386/

相关文章:

c# - 部分注册为 allowDefinition ='MachineToApplication' 超出应用程序级别

c# - 覆盖 ProcessCmdKey 时如何检测 shift+tab

c# - WebAPI 2.1 中的 Ninject 错误 - 确保 Controller 具有无参数公共(public)构造函数

c# - 从 IEnumerable C# 返回列表<object>

Monotouch 中的 Linq(在设备上调试)

c# - Linq - OrderBy 使用 lambda 表达式的两列的最小值?

Linq:运算符不理解表达式类型谓词的查询语法

c# - 如何向 NHibernate queryover 添加按方向动态排序

c# - 维西.CoolStorage : filter with ManyToOne and ManyToMany relation

c# - 将 linq 结果获取到数据表的通用方法,用于通过多个选择选择新的