【发布时间】:2020-07-12 06:19:26
【问题描述】:
我在获取 LINQ 查询中的过滤记录以根据条件和属性动态检索列时遇到问题,还根据条件(例如,包含、等于、StartsWith、EndsWith)。
我有一个如下的记录列表 -
List<Employee> employees = new List<Employee>()
{
new Employee()
{
name ="Andy", cityCriteria="Florida West", state ="NYC"
},
new Employee()
{
name = "John", cityCriteria = "West Virginia", state = "Arizona"
},
new Employee()
{
name = "Nichole", cityCriteria = "East Florida", state = "NYC"
}
};
所以,这只是一些示例记录,这些数据将来自数据库,并且会有很多记录。 现在,我想要实现的是,如果根据列表发布了与城市匹配的任何视频,我必须通知所有人。所以,我可以接收 NotificationValue 作为 City:Florida:startsWith , City:Florida: Equals , City:Florida:Contains 等,也可能有州标准。 那么,我如何在列表中动态过滤记录,例如输入是否以 Starts 开头,我应该使用 StartsWith ex
If Input is City:Florida:startsWith -->
var result = employees.where(i=>i.CityCriteria.StartsWith("Florida").toList();
If Input is City:Florida:Contains -->
var result = employees.where(i=>i.CityCriteria.Contains("Florida").toList();
If Input is City:Florida:EndsWith -->
var result = employees.where(i=>i.CityCriteria.EndsWith("Florida").toList();
If Input is City:Florida:Equals -->
var result = employees.where(i=>i.CityCriteria.Equals("Florida").toList();
我不想使用多个条件并形成 Where 子句。我希望它是动态的,就像我收到的开头应该替换 LINQ 查询开始、结束、等于等,并且它应该与动态列灵活,就像我必须为州、国家、邮编等应用相同的逻辑'
如果可能,请发布一些示例代码
【问题讨论】:
-
郑重声明,纽约市不是一个州 :-) 它是纽约市。
标签: c# .net asp.net-mvc linq dynamic-linq