c#将整数添加到列表中
当我检查文本框是否等于1时,我想检查列表allready是否包含特定值。当我运行这个时,它总是转到else代码。我做错了什么c#将整数添加到列表中,c#,.net,C#,.net,当我检查文本框是否等于1时,我想检查列表allready是否包含特定值。当我运行这个时,它总是转到else代码。我做错了什么 List<int> list = new List<int>(); if (Convert.ToInt32(DobbelWaarde.Text) == 1) { if (list.Contains(1)) { Console.WriteLine("1 is allready been chosen"); }
List<int> list = new List<int>();
if (Convert.ToInt32(DobbelWaarde.Text) == 1)
{
if (list.Contains(1))
{
Console.WriteLine("1 is allready been chosen");
}
else
{
list.Add(1);
Console.WriteLine();
foreach (int li in list)
{
Console.WriteLine(li);
Console.WriteLine("We add 1");
}
}
}
List List=新列表();
if(Convert.ToInt32(DobbelWaarde.Text)==1)
{
如果(列表包含(1))
{
Console.WriteLine(“1已选择就绪”);
}
其他的
{
增加第(1)款;
Console.WriteLine();
foreach(列表中的int li)
{
控制台。WriteLine(li);
Console.WriteLine(“我们添加1”);
}
}
}
当我运行这个时,它总是转到else代码
您没有在列表的任何位置添加整数。您从一个空列表开始,然后检查它是否包含1
,这就是它转到else部分的原因
您可以初始化列表,如下所示:
List<int> list = new List<int>() {1};
List List=newlist(){1};
第一行是一个空列表:
List<int> list = new List<int>();
List List=新列表();
列表为空,因此无论检查的值是什么,都返回false
要初始化列表,您可以使用:
List<int> list = new List<int> { 1 };
List List=新列表{1};
详情如下:
我不知道你的密码
首先,你的列表没有任何元素
您的代码可能是这样的:
List<int> list = new List<int>();
list.Add(1);
list.Add(2);
list.Add(3);
list.Add(4);
int number = Convert.ToInt32(DobbelWaarde.Text);
if ( number == 1)
{
if (list.Contains(1))
{
Console.WriteLine(number + " is allready been chosen");
}
else
{
list.Add(number );
Console.WriteLine();
foreach (int li in list)
{
Console.WriteLine(li);
Console.WriteLine("We add " + number);
}
}
}
List List=新列表();
增加第(1)款;
增加(2);
增加(3);
增加(4);
int number=Convert.ToInt32(DobbelWaarde.Text);
如果(数字==1)
{
如果(列表包含(1))
{
Console.WriteLine(已选择数字+);
}
其他的
{
列表。添加(编号);
Console.WriteLine();
foreach(列表中的int li)
{
控制台。WriteLine(li);
Console.WriteLine(“我们添加”+数字);
}
}
}
if语句中的条件总是计算为false,即列表没有1,因此它返回false,因此执行else部分 定义您的列表
外部复选框方法:
List<int> list = new List<int>();
void CheckTextBox()
{
if (Convert.ToInt32(DobbelWaarde.Text) == 1)
{
if (list.Contains(1))
{
Console.WriteLine("1 is allready been chosen");
}
else
{
list.Add(1);
Console.WriteLine();
foreach (int li in list)
{
Console.WriteLine(li);
Console.WriteLine("We add 1");
}
}
}
}
List List=新列表();
void CheckTextBox()
{
if(Convert.ToInt32(DobbelWaarde.Text)==1)
{
如果(列表包含(1))
{
Console.WriteLine(“1已选择就绪”);
}
其他的
{
增加第(1)款;
Console.WriteLine();
foreach(列表中的int li)
{
控制台。WriteLine(li);
Console.WriteLine(“我们添加1”);
}
}
}
}
您总是在检查列表是否包含该编号之前初始化列表。这将清除列表。
因此,您应该将初始化移动到类的构造函数中,例如:
class MyClass
{
List<int> list;
public MyClass()
{
list = new List<int>();
}
private void Validate()
{
if (Convert.ToInt32(DobbelWaarde.Text) == 1)
{
if (list.Contains(1))
{
Console.WriteLine("1 is allready been chosen");
}
else
{
list.Add(1);
// ...
}
}
class-MyClass
{
名单;
公共MyClass()
{
列表=新列表();
}
私有void Validate()
{
if(Convert.ToInt32(DobbelWaarde.Text)==1)
{
如果(列表包含(1))
{
Console.WriteLine(“1已选择就绪”);
}
其他的
{
增加第(1)款;
// ...
}
}
因为您的列表总是空的,因为您每次都是在第一次创建新列表之前这样创建的吗?如果这不在for中,或者您缺少一些代码,这是正常的。我相信用1初始化不是一个解决方案。因为在这种情况下,代码将始终运行到内部If块中,我相信@Optical将运行n“我不希望这种情况发生。@Roman,实际上不清楚OP到底需要什么?”我想让他明白,列表需要包含一些元素,并且至少包含值为1
的元素,以便检查执行代码的if部分(kay:)标记为肯定@habib。您可能会建议在记住其st的范围内声明列表例如,将其设置为数据成员或静态变量