通常对于每次写这样的
List<int> intList = new List<int>();
foreach(int a in intList)
{
if(a > 5){
break;
}
}
Run Code Online (Sandbox Code Playgroud)
有可能做这样的事情
List<int> intList = new List<int>();
int a=0;
foreach(a in intList)
{
if(a > 5){
break;
}
}
//do something to **a** here
Run Code Online (Sandbox Code Playgroud)
不,这是不可能的.遵循C#规范,这是foreach循环语法:
foreach-statement:
foreach ( local-variable-type identifier in expression )
embedded-statement
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,这local-variable-type是语法的一部分,因此在代码中需要使其成为正确的C#代码.
您应该使用LINQ并FirstOrDefault以更清晰的方式获得类似的行为:
List<int> intList = new List<int>();
int a = intList.FirstOrDefault(x => x > 5)
Run Code Online (Sandbox Code Playgroud)
不同之处在于,如果找不到与列表中的条件匹配的项目,a则将设置为default(int),而不是集合中最后一项的值.