C#筛选列表-多个条件
本文关键字:条件 筛选 列表 | 更新日期: 2023-09-27 18:24:08
我有一个名为melter的自定义数据类型的列表。
熔化器中与过滤器有关的两件事是:
- 已删除
- Desc
我收到/申报我的清单是这样的:
// Return all the melters
var melterslist = ServiceManager.ListStandingDataValues(StandingDataType.melters);
var meltersActive = new List<IMelters>();
foreach (var m in melterslist)
{
if (m.Deleted == false && m.desc.ToUpper().Contains(input))
{
meltersActive.Add(m);
}
}
var json = new { MelterNames = new List<object>() };
foreach (var m in meltersActive)
{
json.meltersNames.Add(
new
{
Name = m.Description,
Value = m.Id
}
);
}
return json;
但我认为,由于列表大小>1000,对上层和包含进行操作会花费我很多处理时间。
然后每次把它转换成JSON,我认为这也会扼杀它
JSON在jQuery自动完成字段中使用时,每分钟可以命中3/4次。
有人能推荐一种更好的方法吗,即LINQ查询?
感谢
在LINQ中,您可以使用来实现这一点
meltersActive = (from melter in melterslist
where m.Deleted && m.desc.IndexOf(input, StringComparison.InvariantCultureIgnoreCase) != -1
select new
{
Name = m.Description,
Value = m.Id
});
对于第二个条件(不区分大小写的Contains
),请查看不区分大小字母的"Contains(string)"和Microsoft Connect。