我有以下代码:
foreach (TrainerFileHandler trainer in mTrainers)
{
if (cboTrainer.SelectedItem == (trainer.First + " " + trainer.Last))
{
trainerID = trainer.ID;
break;
}
}
TrainerFileHandler是我的构造函数,它具有First,Last和ID属性。现在,我已经逐步完成了代码,看到我的组合框中的所选项目与第一个+“”+最后一个完全相同,但它仍然表示它们彼此不相等。
我还有其他类似的东西:
foreach (ExerciseFileHandler exercise in mExercise)
{
if (cboExercise.SelectedItem == exercise.PlanName)
{
planID = exercise.ID;
break;
}
}
现在一个人工作得非常好。我尝试过这样做:
foreach (TrainerFileHandler trainer in mTrainers)
{
string first = trainer.First;
string last = trainer.Last;
string full = first + " " + last;
if (cboTrainer.SelectedItem == last)
{
trainerID = trainer.ID;
break;
}
}
但这也不起作用。任何人都知道为什么这不起作用?可能有助于注意,在两个if语句下,即使有一个有效,但有一个没有,它会说“可能是非预期的参考比较;要进行值比较,请将左侧投射到类型'字符串'”。我尝试将左侧作为一个字符串,但没有帮助。
答案 0 :(得分:1)
@MPelletier提供了正确答案作为评论
我需要使用String.Equals()而不是==。