组合框项不会等于构造函数c#

时间:2013-11-20 01:41:21

标签: c# winforms combobox

我有以下代码:

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语句下,即使有一个有效,但有一个没有,它会说“可能是非预期的参考比较;要进行值比较,请将左侧投射到类型'字符串'”。我尝试将左侧作为一个字符串,但没有帮助。

1 个答案:

答案 0 :(得分:1)

@MPelletier提供了正确答案作为评论

我需要使用String.Equals()而不是==。