Как выйти из общего списка ForEach с делегатом? Перерыв или возврат не работает.
Пример:
Peoples.ForEach(delegate(People someone) { if(someone.Name == "foo") ???? What to do to exit immediatly ? });
Вы не можете достичь этого с помощью ForEach .
просто напиши вот так
foreach(People someone in Peoples) { if(someone.Name == "foo") break; // rest of code below for != "foo"... }
чтобы просто пропустить foo и по-прежнему выполнять действие для всех остальных, кого вы можете сделать
if(someone.Name == "foo") continue;
Хотя это и не рекомендуется, вы можете выдать исключение изнутри ForEach(), когда условие выполнено.
ForEach()
Вы можете сделать что-то вроде:
Peoples.TakeWhile(p=> p.Name != "foo") .ToList().ForEach(p => Console.WriteLine(p.Name));
но это излишне и плохо с точки зрения производительности ...
Просто используйте простую петлю foreach.
foreach