C#如何检查列表框中的字符串+对象?

时间:2017-01-21 18:48:23

标签: c# search combobox listbox contains

我试图在列表框中搜索某个数字(对象),并带有一个字符串以突出显示它。在下面的代码中,我重写了ToString()方法以包含我的所有对象。

 public override string ToString()
    {

        string reservatiestring;
        reservatiestring = "Kamer: " + roomNumber + "" + "  Op datum: " + datum + "  Aantal personen: " + personen.Count + "  Naam: " + reservatienaam;
        return reservatiestring;
    }

在此之后,我将其添加到我的列表框中的以下代码中:

 listBox1.Items.Add(reservatie.ToString());

我现在想要搜索包含相同roomNumber对象的列表框中的所有项目。为此,我尝试了Contains()方法和之前的文本:" Kamer:"和我正在寻找的对象+ comboBox1.SelectedItem。然而,这始终失败,我的代码转到else选项,给我错误消息。

private void buttonSearch_Click(object sender, EventArgs e)
    {
        listBox1.SelectionMode = SelectionMode.MultiExtended;
        Reservations reservaties = new Reservations();

        reservaties.roomnumberstring = "Kamer: " + comboBox1.SelectedValue;

        for (int i = listBox1.Items.Count - 1; i >= 0; i--)
        {
            if (listBox1.Items[i].ToString().ToLower().Contains(("Kamer: " + comboBox1.SelectedValue)))
            {
                listBox1.SetSelected(i, true);
            }
            else
            {
                MessageBox.Show("error");
            }

请注意:我的所有roomNumber对象都存储在组合框中,因此每当我在组合框中选择例如roomNumber 3并点击搜索列表框中包含" Kamer:3"应该被选中。

roomnumberstring是我试过的一个不幸的选择。

reservaties.roomnumberstring = "Kamer: " + comboBox1.SelectedValue;

2 个答案:

答案 0 :(得分:0)

您对ToString方法的覆盖是错误的,不会修改任何内容。试试这个:

from sympy.physics.vector import vlatex
vlatex(a.diff(t))   #  outputs '\\dot{a}'

答案 1 :(得分:0)

我可以看到一件可能导致代码失败的事情。你正在比较

.ToLower()

与“Kamer”,其中“K”不是小写