精炼linq查询

时间:2017-11-03 18:15:03

标签: 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")
    && 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";
}

1 个答案:

答案 0 :(得分:0)

您可以使用AllContains扩展方法的组合:

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";