Performance 细化linq查询
有没有更好的方法来编写代码,而不必重复访问原始列表Performance 细化linq查询,performance,linq,Performance,Linq,有没有更好的方法来编写代码,而不必重复访问原始列表 var list = new List<string> { "F1", "F2", "F3", "F4", "F5", "F6", "F7" }; if (list.Any(a => a.TYPE_CD == "F1") && list.Any(a => a.TYPE_CD == "F2") && list.Any(a => a.TYPE_CD == "F3")
var list = new List<string> { "F1", "F2", "F3", "F4", "F5", "F6", "F7" };
if (list.Any(a => a.TYPE_CD == "F1")
&& list.Any(a => a.TYPE_CD == "F2")
&& list.Any(a => a.TYPE_CD == "F3")
&& list.Any(a => a.TYPE_CD == "F4")
&& list.Any(a => a.TYPE_CD == "F5")
&& list.Any(a => a.TYPE_CD == "F6")
&& list.Any(a => a.TYPE_CD == "F7"))
{
return "All";
}
var list=新列表{“F1”、“F2”、“F3”、“F4”、“F5”、“F6”、“F7”};
if(list.Any(a=>a.TYPE_CD==“F1”)
&&任何(a=>a.TYPE_CD==“F2”)
&&任何(a=>a.TYPE_CD==“F3”)
&&任何(a=>a.TYPE_CD==“F4”)
&&任何(a=>a.TYPE_CD==“F5”)
&&任何(a=>a.TYPE_CD==“F6”)
&&list.Any(a=>a.TYPE_CD==“F7”))
{
返回“全部”;
}
您可以结合使用所有
和包含
扩展方法:
var temp=new HashSet<string> { "F1", "F2", "F3", "F4", "F5", "F6", "F7" };
var result=list.All(e=> temp.Contains(e.TYPE_CD))?"All":"Not All";
var temp=newhashset{“F1”、“F2”、“F3”、“F4”、“F5”、“F6”、“F7”};
var result=list.All(e=>temp.Contains(e.TYPE_CD))?“All”:“notall”;
您可以结合使用所有
和包含
扩展方法:
var temp=new HashSet<string> { "F1", "F2", "F3", "F4", "F5", "F6", "F7" };
var result=list.All(e=> temp.Contains(e.TYPE_CD))?"All":"Not All";
var temp=newhashset{“F1”、“F2”、“F3”、“F4”、“F5”、“F6”、“F7”};
var result=list.All(e=>temp.Contains(e.TYPE_CD))?“All”:“notall”;
list的成员如何拥有TYPE\u CD
字段?@NetMage,可能是自定义类,而不是列表中的字符串list
的成员如何拥有TYPE\u CD
字段?@NetMage,可能是自定义类,列表中没有字符串我建议对temp
使用HashSet
。好的,如果OP有大列表要比较,我会建议对temp
使用HashSet
。好的,如果OP有大列表要比较,我会给出很好的建议,谢谢