我有一个名为melter的自定义数据类型列表。
有关过滤器的熔化器中的两件事是:
我得到/声明我的列表:
// 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;
但是我觉得做到鞋帮和包含会花费我很多处理时间,因为列表大小是&gt; 1000。
然后每次我认为它也会将其转换为JSON。
JSON可以在jQuery自动完成字段中使用3/4次。
有人可以推荐更好的方法吗,即LINQ查询?
由于
答案 0 :(得分:1)
在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
),请查看Case insensitive 'Contains(string)'和Microsoft Connect。