C# 使用for循环将选定元素添加到列表中
我尝试使用for循环将30中的6个整数(22和26除外)添加到列表中。但22和26仍在增加。我做错了什么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); } } 列表行号=新列表();
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);
}