所以,为了简短起见,我有一些代码,我循环遍历字符串拆分的结果并将它们添加到列表中,如果它们在循环之前没有发生过.这是代码.
var res = new List<string>();
foreach(string s in input.Split(new[] { ", " },
StringSplitOptions.RemoveEmptyEntries))
{
if(res.All(p => p != s))
res.Add(s);
}
Run Code Online (Sandbox Code Playgroud)
但在我编写这段代码之后,Visual Studio说我可以将部分循环转换为LINQ.但是,我对这是否有效持怀疑态度.
基本上,我的问题是,lambda表达式是在每个单独的循环上执行,还是在开头只执行一次?
var res = new List<string>();
foreach (string s in input.Split(new[] { ", " },
StringSplitOptions.RemoveEmptyEntries)
.Where(s => res.All(p => p != s)))
{
res.Add(s);
}
Run Code Online (Sandbox Code Playgroud)