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有大列表要比较,我会给出很好的建议,谢谢