C# 如果在非括号内,则括号内

C# 如果在非括号内,则括号内,c#,.net,if-statement,foreach,C#,.net,If Statement,Foreach,这可能在以前的某个地方得到了回答,但我想不出一个好方法来描述我的搜索 foreach(item in list) if(something) { dosomething(); } if(somethingunrelated) { dosomethingunrelated(); } 除了显而易见的极难阅读之外,是否有任何方法可以跳过if语句 我认为这里需要的是foreach将迭代列表中的每一项,并应用第一个if语句。foreach完成后,第二个if将应用一次

这可能在以前的某个地方得到了回答,但我想不出一个好方法来描述我的搜索

foreach(item in list)
  if(something)
  {
    dosomething();
  }
if(somethingunrelated)
  {
    dosomethingunrelated();
  }
除了显而易见的极难阅读之外,是否有任何方法可以跳过if语句

我认为这里需要的是foreach将迭代列表中的每一项,并应用第一个if语句。foreach完成后,第二个if将应用一次


我没有写这篇文章,我正在寻找遗留系统的问题。我不认为是这样,但我似乎记得,如果嵌套的所有内容都跳过括号,那么只能跳过括号(在c#net中)。正确吗?

第二条
if
语句将在foreach循环完成后执行

foreach(item in list)
    if(something)
    {
        dosomething();
    }
    if(somethingunrelated)
    {
        dosomethingunrelated();
    }
逻辑上与此相同

foreach(item in list)
{
    if(something)
    {
        dosomething();
    }
}
if(somethingunrelated)
{
    dosomethingunrelated();
}
不要被压痕愚弄了

我似乎记得,如果嵌套的所有内容都跳过括号,则只能跳过括号

否-如果省略括号,则只有下一条语句将在范围中。“单语句”可以是括号内的语句,因此在您的情况下

foreach(...)
    if   <--
    {      |
           | // will  get executed for each item
    }    <--
if   
{  
    // will get executed after the `foreach` is complete.
}
foreach(…)

如果我认为这里需要的是foreach将迭代列表中的每一项,并应用第一个if语句。foreach完成后,第二个if将应用一次。你是对的。不,你记错了。你的假设是正确的。第二个
if
将在
foreach
完成执行后只命中一次。@Ehsan Sajjad无法运行代码,现在无法创建新代码。