0

我有一个包含 Customer 对象的列表,我正在尝试在每个对象中搜索一个名称。在 Customer 对象中有一个属性 ContactData,它返回一个 Contact 对象。在 Contact 对象中,我有一个返回名称字符串的方法。这是我试图比较的名称,但它不能正常工作,因为我每次都会受到打击,尽管我搜索的名称在任何 Customer 对象中都不存在。我正在使用的代码:

foreach (Customer name in m_customers)
{
      if (name.ContactData.FullName == "Anna") 
      {
          MessageBox.Show(string.Format("Yes"), "Test!", MessageBoxButtons.OK, MessageBoxIcon.Information); // Just for testing  
      }
}

我也测试过使用简单的 for 循环,但我得到了相同的结果。我不确定我在做正确的事情,并且会得到一些帮助!谢谢!

4

1 回答 1

1

试试这个,可能是因为您的代码、数据库或存储过程中某处的所有客户的“全名”以某种方式设置为“安娜”...

foreach (Customer name in m_customers) 
{ 
    if(name.ContactData != null) System.Diagnostics.Debug.WriteLine(name.ContactData.FullName);

    if (name.ContactData.FullName == "Anna")  
    { 
        MessageBox.Show(string.Format("Yes"), "Test!", MessageBoxButtons.OK, MessageBoxIcon.Information); // Just for testing   
    } 
} 

如果是这种情况,请对关键字“Anna”进行全局搜索,然后查看弹出的内容。

另一种可能性是您没有为每个客户创建一个新的 ContactData 对象,而只是重用一个变量。这可能会使用相同的 ContactData 对象更新所有客户,因为正在使用指针。相反,为每个客户创建一个全新的 ContactData 对象。

如果这两种可能性没有帮助,您将不得不发布更多代码进行故障排除。

于 2012-05-12T11:55:29.663 回答