我们能把这个For循环转换成LINQ吗?
我们能把这个For循环转换成LINQ表达式吗;查询语法和方法语法我们能把这个For循环转换成LINQ吗?,linq,Linq,我们能把这个For循环转换成LINQ表达式吗;查询语法和方法语法 List<INode> sds = new List<INode>(); foreach (INode n in lnd) { foreach(string s in Pages) { if (n.NiceUrl == s) { sds.Add(n); } } } List sds=new List(); f
List<INode> sds = new List<INode>();
foreach (INode n in lnd)
{
foreach(string s in Pages)
{
if (n.NiceUrl == s)
{
sds.Add(n);
}
}
}
List sds=new List();
foreach(lnd中的索引节点n)
{
foreach(页面中的字符串s)
{
如果(n.NiceUrl==s)
{
sds.Add(n);
}
}
}
lnd.Select(x=>x.NiceUrl)部分可以替换为哈希集。为什么?它是可读的。您不会获得任何性能优势。请尝试Resharper。它将在一次点击中为您完成此操作。严格地说,你的问题的正确答案是肯定的。如果你问“请为我做这件事”,说明你尝试了什么以及你在哪里遇到了困难可能会有帮助。也许对其他读者来说,解释一下你的代码是如何工作的会有帮助?
sds = lnd.Join(Pages, n => n.NiceUrl, p => p, (n, p) => n).ToList();
Pages.Where(y => lnd.Select(x => x.NiceUrl).Contains(y)).Tolist();
sds = lnd.Join(Pages, n => n.NiceUrl, p => p, (n, p) => n).ToList();