有什么办法可以将以下代码缩减为Linq格式?将2个foreach循环缩减为linq查询
foreach (var current in currentWhiteListApps)
{
var exists = false;
foreach (var whiteList in clientSideWhiteLists)
{
if (current.appID.Equals(whiteList.appID))
{
exists = true;
}
}
if (!exists)
{
deleteList.Add(current);
}
}
所有我能想到的是:
currentWhiteListApps.Select(x => {
var any = clientSideWhiteLists.Where(y => y.appID.Equals(x.appID));
if (any.Any())
deleteList.AddRange(any.ToArray());
return x;
});
理由LINQ
LINQ
远比嵌套foreach循环更加易读,且需要更少的代码。所以这是我想它在LINQ
为什么要在'LINQ'中使用这个特殊原因?它可能不会优化代码,并且会降低可读性。 – LukeHennerley 2013-03-25 11:41:29
“LINQ规则#1”:除非您能够在3分钟内自行提供LINQ查询,否则不值得使用它。 :) – JleruOHeP 2013-03-25 11:42:18
编辑到LINQ规则#1,如果你的职业....我不以任何方式塑造或形成Linq的专家,所以这条规则不适用。 – 2013-03-25 12:57:23