Linq每条跳线
本文关键字:跳线 Linq | 更新日期: 2023-09-27 18:15:35
我有这个linq foreach
public Func<List<string>, Foobar, List<string>> ExtractClassName = (lines, foo)
=>
{
temp = lines.FindAll(_FooRege.IsMatch);
temp.ForEach(t => { lines.Remove(t); });
lines.ForEach(
lin =>
{
if (foo.FooRege.IsMatch(lin))
{
docsText.AppendLine(TrimSlashes(lin));
lines.Remove(lin);
}
else if(_FooRege.IsMatch(lin))
{
_foo.ClassName = lin.Split(' ').Last();
lines.Remove(lin);
}
});
return lines;
};
TestData
/// <summary>
/// Summary <- skips this one
/// </summary>
如果一切正常,则在第一个匹配中命中第一个匹配,但如果跳过一行,则第一个匹配的第二次命中。不知道为什么会这样
永远不要修改当前正在迭代的集合。首先创建一个集合的副本,在您的示例中,只需进行以下的小更改即可:
foo.ToList().ForEach(...