通常每次写这样的
List<int> intList = new List<int>();
foreach(int a in intList)
{
if(a > 5){
break;
}
}
是否可以做这样的事情
List<int> intList = new List<int>();
int a=0;
foreach(a in intList)
{
if(a > 5){
break;
}
}
//do something to **a** here
答案 0 :(得分:6)
不,这是不可能的。遵循C#规范,这里是foreach
循环语法:
foreach-statement:
foreach ( local-variable-type identifier in expression )
embedded-statement
如您所见,local-variable-type
是此处语法的一部分,因此代码中需要使其成为正确的C#代码。
你应该使用LINQ和FirstOrDefault
以更清洁的方式获得类似的行为:
List<int> intList = new List<int>();
int a = intList.FirstOrDefault(x => x > 5)
不同的是,如果您找不到与列表中的条件匹配的商品,则a
将设置为default(int)
,而不是您商品中最后一项的价值。< / p>
答案 1 :(得分:2)
如果你要做的是找到列表中第一个大于5的值,那么这样的代码就会更少,更清晰:
int a = intList.Find(x => x > 5);
答案 2 :(得分:0)
否则你可以这样做....
List<int> intList = new List<int>();
int a=0;
foreach(int b in intList)
{
if(b > 5){
a = b;
break;
}
}
//do something to **a** here