C# 用于多个筛选器的Asp.net mvc Linq查询

C# 用于多个筛选器的Asp.net mvc Linq查询,c#,asp.net,asp.net-mvc,linq,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Linq,Asp.net Mvc 4,我正在开发一个Asp.net MVC Razor应用程序。 在我的应用程序视图中,我有一个过滤器栏,用户可以在其中输入过滤选项 我想知道当用户以“或”函数输入多个城市,以及以“和”函数输入多个邮政编码时,是否有更简单的linq表达式 例如:用户输入“纽约、蒙特利尔”,我必须检索这些城市的所有条目 我有工作代码,但它没有考虑用户是否会输入多个条目 代码: 谢谢您的帮助。您需要的是PredicateBuilder,我知道有一个可以处理或和和的PredicateBuilder。对于这种情况,libr

我正在开发一个Asp.net MVC Razor应用程序。 在我的应用程序视图中,我有一个过滤器栏,用户可以在其中输入过滤选项

我想知道当用户以“或”函数输入多个城市,以及以“和”函数输入多个邮政编码时,是否有更简单的linq表达式

例如:用户输入“纽约、蒙特利尔”,我必须检索这些城市的所有条目

我有工作代码,但它没有考虑用户是否会输入多个条目

代码:


谢谢您的帮助。

您需要的是PredicateBuilder,我知道有一个可以处理的PredicateBuilder。对于这种情况,library有这个类,下面是使用它的示例:

var predicate = PredicateBuilder.True<Customer>();

foreach (var product in products)
{
    predicate = predicate.And(c => c.Products.Any(x => x.Id == productId));
}
var predicate=PredicateBuilder.True();
foreach(产品中的var产品)
{
predicate=predicate.And(c=>c.Products.Any(x=>x.Id==productId));
}

只需下载库并引用它,然后使用PredicateBuilder类。

您的问题不清楚是要处理逗号还是处理
。不管怎样,我认为你应该研究处理“或”以及“和”谢谢。我会研究你的链接
var predicate = PredicateBuilder.True<Customer>();

foreach (var product in products)
{
    predicate = predicate.And(c => c.Products.Any(x => x.Id == productId));
}