C#筛选列表-多个条件
我有一个名为melter的自定义数据类型列表 熔化器中与过滤器有关的两件事是:C#筛选列表-多个条件,c#,string,list,optimization,filter,C#,String,List,Optimization,Filter,我有一个名为melter的自定义数据类型列表 熔化器中与过滤器有关的两件事是: 删除 描述 我获取/声明我的列表如下: // Return all the melters var melterslist = ServiceManager.ListStandingDataValues(StandingDataType.melters); var meltersActive = new List<IMelters>();
- 删除
- 描述
// 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;
//返回所有熔化器
var melterslist=ServiceManager.ListStandingDataValues(StandingDataType.melters);
var meltersacctive=新列表();
foreach(熔炉列表中的var m)
{
如果(m.Deleted==false&&m.desc.ToUpper().Contains(输入))
{
熔融活性。添加(m);
}
}
var json=new{MelterNames=new List()};
foreach(熔融状态下的var m)
{
json.meltersNames.Add(
新的
{
名称=m.说明,
值=m.Id
}
);
}
返回json;
但我认为,由于列表大小>1000,因此修改upper和contains会花费我大量的处理时间
然后每次我认为将它转换为JSON也会扼杀它
在jQuery自动完成字段中使用JSON时,JSON每分钟可以被命中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
),请查看和。您是否在StringComparison.invariantCultureInogoreCase
?编辑或meltersList.Where(m=>!m.Deleted…
Yes,从某种意义上说,但更多的是寻找关于整个字符串比较和转换为JSON的最佳优化方法的建议抱歉,没有visual studio很难做示例