C# 我犯的每一个错误是什么?
我的foreach循环有问题。prupose是通过列表框中的项目进行循环,对于存在的每个项目,它应该将person的属性设置为等于person对象的属性,我将插入到person对象列表中。(person有一个项目,带有属性等)。问题:它将第一个人及其项目插入列表,但当第二个人必须插入时,它会将第一个人数据更改为与第二个人数据相同的数据,并插入第二个人。因此,它总是插入新的人,但我已经插入的所有旧数据也会与新的人的数据相同C# 我犯的每一个错误是什么?,c#,sqlite,loops,foreach,listbox,C#,Sqlite,Loops,Foreach,Listbox,我的foreach循环有问题。prupose是通过列表框中的项目进行循环,对于存在的每个项目,它应该将person的属性设置为等于person对象的属性,我将插入到person对象列表中。(person有一个项目,带有属性等)。问题:它将第一个人及其项目插入列表,但当第二个人必须插入时,它会将第一个人数据更改为与第二个人数据相同的数据,并插入第二个人。因此,它总是插入新的人,但我已经插入的所有旧数据也会与新的人的数据相同 private void btnOK_Click(object sende
private void btnOK_Click(object sender, EventArgs e)
{
bool bOK = false;
if (UC.IsEmpty(txtFirstName) || UC.IsEmpty(txtLastName) || UC.IsEmpty(txtID) || lstItemsAdded.Text == null) //Maak seker van die listItemsAdded se content... hier sal n error wees... j kan nog n else maak dat hy spesefiek toets of daar items in die lstbox is
{
UC.MB("Customer Information Missing", "Please supply enough customer information");
}
else
{
bOK = true;
}
if (bOK)
{
foreach (Item item in lstItemsAdded.Items)
{
PersonItemObject.FirstName = txtFirstName.Text;
PersonItemObject.LastName = txtLastName.Text;
PersonItemObject.ID = txtID.Text;
PersonItemObject.Email = txtEmail.Text;
PersonItemObject.Age = Convert.ToInt32(txtAge.Text);
PersonItemObject.Item.ItemCode = item.ItemCode;
PersonItemObject.Item.ItemDescription = item.ItemDescription;
PersonItemObject.Item.ItemName = item.ItemName;
PersonItemObject.Item.ItemPrice = item.ItemPrice;
它应该在下一个语句中将列表框中的所有项目添加到列表中,并且还应该为每个项目添加人员详细信息
PersonItemsList.Add(PersonItemObject);
如果我向一个人添加了多个项目,则会将我在列表中添加的旧数据更改为与新的个人数据相同,并将新的个人插入列表中
}
DialogResult = DialogResult.OK;
Close();
}
}
您应该创建“Personimobject”的新实例。比如:
PersonItemObject = new PersonItemObjectClass()
作为循环的第一句话,being personimobject类是personimobject的类型。这里的问题可能是,您总是使用同一个实例,因此值总是在变化。您应该为“Personimobject”创建一个新实例。比如:
PersonItemObject = new PersonItemObjectClass()
作为循环的第一句话,being personimobject类是personimobject的类型。这里的问题可能是,您总是使用同一个实例,因此值总是在变化。您应该为“Personimobject”创建一个新实例。比如:
PersonItemObject = new PersonItemObjectClass()
作为循环的第一句话,being personimobject类是personimobject的类型。这里的问题可能是,您总是使用同一个实例,因此值总是在变化。您应该为“Personimobject”创建一个新实例。比如:
PersonItemObject = new PersonItemObjectClass()
作为循环的第一句话,being personimobject类是personimobject的类型。这里的问题可能是,您总是在使用同一个实例,因此值总是在变化。您必须在
foreach
循环中创建一个新的Personimobject
类型的实例
您要添加到PersonimsList
中的内容实际上是对类的单个实例的引用。每次迭代循环时,都会更新同一个实例,因此会有一个外观相同的对象列表
foreach (Item item in lstItemsAdded.Items)
{
var PersonItemObject = new PersonItem();
PersonItemObject.FirstName = txtFirstName.Text;
PersonItemObject.LastName = txtLastName.Text;
...
PersonItemsList.Add(PersonItemObject);
}
您可能想了解它们之间的区别。您必须在
foreach
循环中创建一个新的Personimobject
类型的实例
您要添加到PersonimsList
中的内容实际上是对类的单个实例的引用。每次迭代循环时,都会更新同一个实例,因此会有一个外观相同的对象列表
foreach (Item item in lstItemsAdded.Items)
{
var PersonItemObject = new PersonItem();
PersonItemObject.FirstName = txtFirstName.Text;
PersonItemObject.LastName = txtLastName.Text;
...
PersonItemsList.Add(PersonItemObject);
}
您可能想了解它们之间的区别。您必须在
foreach
循环中创建一个新的Personimobject
类型的实例
您要添加到PersonimsList
中的内容实际上是对类的单个实例的引用。每次迭代循环时,都会更新同一个实例,因此会有一个外观相同的对象列表
foreach (Item item in lstItemsAdded.Items)
{
var PersonItemObject = new PersonItem();
PersonItemObject.FirstName = txtFirstName.Text;
PersonItemObject.LastName = txtLastName.Text;
...
PersonItemsList.Add(PersonItemObject);
}
您可能想了解它们之间的区别。您必须在
foreach
循环中创建一个新的Personimobject
类型的实例
您要添加到PersonimsList
中的内容实际上是对类的单个实例的引用。每次迭代循环时,都会更新同一个实例,因此会有一个外观相同的对象列表
foreach (Item item in lstItemsAdded.Items)
{
var PersonItemObject = new PersonItem();
PersonItemObject.FirstName = txtFirstName.Text;
PersonItemObject.LastName = txtLastName.Text;
...
PersonItemsList.Add(PersonItemObject);
}
在每次迭代中,您都要更新同一对象的属性,然后将其插入到列表中,您可能需要了解它们之间的差异。因此,在结束列表中包含对同一对象的多个引用 您应该为每次迭代创建新对象:
foreach (Item item in lstItemsAdded.Items)
{
PersonItem item = new PersonItem(); //just guessing the type here
item.FirstName = txtFirstName.Text;
...
PersonItemsList.Add(item);
}
foreach (Item item in lstItemsAdded.Items)
{
var PersonItemObject = new YourType();
PersonItemObject.FirstName = txtFirstName.Text;
PersonItemObject.LastName = txtLastName.Text;
...
}
在每次迭代中,您都要更新同一对象的属性,然后将其插入列表中。因此,在结束列表中包含对同一对象的多个引用 您应该为每次迭代创建新对象:
foreach (Item item in lstItemsAdded.Items)
{
PersonItem item = new PersonItem(); //just guessing the type here
item.FirstName = txtFirstName.Text;
...
PersonItemsList.Add(item);
}
foreach (Item item in lstItemsAdded.Items)
{
var PersonItemObject = new YourType();
PersonItemObject.FirstName = txtFirstName.Text;
PersonItemObject.LastName = txtLastName.Text;
...
}
在每次迭代中,您都要更新同一对象的属性,然后将其插入列表中。因此,在结束列表中包含对同一对象的多个引用 您应该为每次迭代创建新对象:
foreach (Item item in lstItemsAdded.Items)
{
PersonItem item = new PersonItem(); //just guessing the type here
item.FirstName = txtFirstName.Text;
...
PersonItemsList.Add(item);
}
foreach (Item item in lstItemsAdded.Items)
{
var PersonItemObject = new YourType();
PersonItemObject.FirstName = txtFirstName.Text;
PersonItemObject.LastName = txtLastName.Text;
...
}
在每次迭代中,您都要更新同一对象的属性,然后将其插入列表中。因此,在结束列表中包含对同一对象的多个引用 您应该为每次迭代创建新对象:
foreach (Item item in lstItemsAdded.Items)
{
PersonItem item = new PersonItem(); //just guessing the type here
item.FirstName = txtFirstName.Text;
...
PersonItemsList.Add(item);
}
foreach (Item item in lstItemsAdded.Items)
{
var PersonItemObject = new YourType();
PersonItemObject.FirstName = txtFirstName.Text;
PersonItemObject.LastName = txtLastName.Text;
...
}
您有一个PersonieMobject,并且在每次迭代中都会对其进行更改。如果您希望列出PersonieMobject,请在每次迭代中创建一个新实例:
foreach (Item item in lstItemsAdded.Items)
{
PersonItem item = new PersonItem(); //just guessing the type here
item.FirstName = txtFirstName.Text;
...
PersonItemsList.Add(item);
}
foreach (Item item in lstItemsAdded.Items)
{
var PersonItemObject = new YourType();
PersonItemObject.FirstName = txtFirstName.Text;
PersonItemObject.LastName = txtLastName.Text;
...
}
您有一个PersonieMobject,并且在每次迭代中都会对其进行更改。如果您希望列出PersonieMobject,请在每次迭代中创建一个新实例:
foreach (Item item in lstItemsAdded.Items)
{
PersonItem item = new PersonItem(); //just guessing the type here
item.FirstName = txtFirstName.Text;
...
PersonItemsList.Add(item);
}
foreach (Item item in lstItemsAdded.Items)
{
var PersonItemObject = new YourType();
PersonItemObject.FirstName = txtFirstName.Text;
PersonItemObject.LastName = txtLastName.Text;
...
}
您有一个PersonieMobject,并且在每次迭代中都会对其进行更改。如果您希望列出PersonieMobject,请在每次迭代中创建一个新实例:
foreach (Item item in lstItemsAdded.Items)
{
PersonItem item = new PersonItem(); //just guessing the type here
item.FirstName = txtFirstName.Text;
...
PersonItemsList.Add(item);
}
foreach (Item item in lstItemsAdded.Items)
{
var PersonItemObject = new YourType();
PersonItemObject.FirstName = txtFirstName.Text;
PersonItemObject.LastName = txtLastName.Text;
...
}
您有一个PersonieMobject,并且在每次迭代中都会对其进行更改。如果您希望列出PersonieMobject,请在每次迭代中创建一个新实例:
foreach (Item item in lstItemsAdded.Items)
{
PersonItem item = new PersonItem(); //just guessing the type here
item.FirstName = txtFirstName.Text;
...
PersonItemsList.Add(item);
}
foreach (Item item in lstItemsAdded.Items)
{
var PersonItemObject = new YourType();
PersonItemObject.FirstName = txtFirstName.Text;
PersonItemObject.LastName = txtLastName.Text;
...
}
这是因为您总是更改相同的
Personimobject
。每次都应创建此对象的新版本,并将其添加到列表中
foreach (Item item in lstItemsAdded.Items)
{
var newObject = new PersonItemObject();
newObject.FirstName = txtFirstName.Text;
newObject.LastName = txtLastName.Text;
newObject.ID = txtID.Text;
newObject.Email = txtEmail.Text;
newObject.Age = Convert.ToInt32(txtAge.Text);
newObject.Item.ItemCode = item.ItemCode;
newObject.Item.ItemDescription = item.ItemDescription;
newObject.Item.ItemName = item.ItemName;
newObject.Item.ItemPrice = item.ItemPrice;
PersonItemsList.Add(newObject);
}
这是因为您总是更改相同的
Personimobject
。每次都应创建此对象的新版本,并且