Generics 如何退出带有委托的通用列表?
如何使用委托退出通用列表ForEach?中断或返回不起作用 例如:Generics 如何退出带有委托的通用列表?,generics,list,foreach,delegates,Generics,List,Foreach,Delegates,如何使用委托退出通用列表ForEach?中断或返回不起作用 例如: Peoples.ForEach(delegate(People someone) { if(someone.Name == "foo") ???? What to do to exit immediatly ? }); 你不能用。你不能用。就这样写出来 foreach(People someone in Peoples) {
Peoples.ForEach(delegate(People someone)
{
if(someone.Name == "foo")
???? What to do to exit immediatly ?
});
你不能用。你不能用。就这样写出来
foreach(People someone in Peoples)
{
if(someone.Name == "foo") break;
// rest of code below for != "foo"...
}
跳过foo,仍然为你能做的其他人做动作
if(someone.Name == "foo") continue;
就这样写出来
foreach(People someone in Peoples)
{
if(someone.Name == "foo") break;
// rest of code below for != "foo"...
}
跳过foo,仍然为你能做的其他人做动作
if(someone.Name == "foo") continue;
你可以这样做:
Peoples.TakeWhile(p=> p.Name != "foo")
.ToList().ForEach(p => Console.WriteLine(p.Name));
但就性能而言,这太过分了,太糟糕了
只需使用一个简单的
foreach
循环。您可以执行以下操作:
Peoples.TakeWhile(p=> p.Name != "foo")
.ToList().ForEach(p => Console.WriteLine(p.Name));
但就性能而言,这太过分了,太糟糕了
只需使用一个简单的
foreach
循环。虽然不推荐,但当条件满足时,您可以从foreach()
内部引发异常。虽然不推荐,但当条件满足时,您可以从foreach()
内部引发异常。但是代价高昂。异常不是程序正常行为的一部分,线索在名称中。:)尽管代价高昂。异常不是程序正常行为的一部分,线索在名称中。:)