C# 使用for循环将选定元素添加到列表中

C# 使用for循环将选定元素添加到列表中,c#,C#,我尝试使用for循环将30中的6个整数(22和26除外)添加到列表中。但22和26仍在增加。我做错了什么 List<int> lineNumbers = new List<int>(); for (int x = 6; x < 30; x++) { if ((x != 22) || (x != 26)) { lineNumbers.Add(x); } } 列表行号=新列表();

我尝试使用for循环将30中的6个整数(22和26除外)添加到列表中。但22和26仍在增加。我做错了什么

List<int> lineNumbers = new List<int>();

for (int x = 6; x < 30; x++)
{
  if ((x != 22) || (x != 26))
  {
    lineNumbers.Add(x);                  
  }               
}
列表行号=新列表();
对于(int x=6;x<30;x++)
{
如果((x!=22)|(x!=26))
{
行号。添加(x);
}               
}
如果代码如下所示,则不添加这两个整数:

for (int x = 6; x < 30; x++)
{
  if (x == 22 )
  {
  }
  else if (x == 26)
  {
  }
  else
  {
    lineNumbers.Add(x);              
  }
}
for(int x=6;x<30;x++)
{
如果(x==22)
{
}
else如果(x==26)
{
}
其他的
{
行号。添加(x);
}
}

使用
&&
而不是
|
,因为您希望在两个条件之间匹配

if ((x != 22) && (x != 26))
您也可以使用
LINQ
(不一定,但我喜欢LINQ:)


您需要将
|
替换为
&&

for (int x = 6; x < 30; x++)
{
  if ((x != 22) && (x != 26))
  {
    lineNumbers.Add(x);                  
  }               
}

改变你的条件。使用
&&
而不是
|

if ((x != 22) && (x != 26))
如果((x!=22)|(x!=26))替换为
if((x!=22)&&(x!=26))

或者,您可以按如下方式使用continue:

for (int x = 6; x < 30; x++)
{
   if ((x == 22) || (x == 26))
       continue;
   else
       lineNumbers.Add(x);                                  
}
for(int x=6;x<30;x++)
{
如果((x==22)|(x==26))
继续;
其他的
行号。添加(x);
}

您说“22和26除外”,但您的代码正在执行
|
即或。感谢您提供三个选项。范围上限为24,而不是25,因为不包括30。
lineNumbers.AddRange(Enumerable.Range(6, 24).Except(new[] { 22, 26 }));
if ((x != 22) && (x != 26))
for (int x = 6; x < 30; x++)
{
   if ((x == 22) || (x == 26))
       continue;
   else
       lineNumbers.Add(x);                                  
}