选择组合框时,将所有匹配的值返回到列表框

本文关键字:列表 返回 组合 选择 | 更新日期: 2023-09-27 18:31:53

我有一个带有ListBox和一堆用于编辑记录的TextBox的表单。我还有一个ComboBox可以从中选择trip类型(这是在表单中定义的)。

    private void LoadExpenseList()
        {
            tripSelect.Items.Clear();
            var dateSorted =
                from e in roster
                orderby e.Trip
                select e;
            foreach (var e in dateSorted)
                tripSelect.Items.Add(e.Trip);
        }
private void tripSelect_SelectedIndexChanged(object sender, EventArgs e)
        {
            selectedExpense = (ExpenseItem)roster.TripFind((string)tripSelect.SelectedItem);
            listExpenses.Items.Add(selectedExpense);
        }

 private void listExpenses_SelectedIndexChanged(object sender, EventArgs e)
        {}

现在,当我选择一个trip时,我只得到传递给ListBox的第一个结果,这就是原因(这是在列表类中定义的)

public ExpenseItem TripFind(string trip)
    {
        var specificExpenseItem =
           from e in this
           where e.Trip == trip
           select e;
        if (specificExpenseItem.Count() >= 1)
            return specificExpenseItem.First();
        return null;
    }

每次尝试重写时,我都会遇到问题!我遇到not all paths return a value或 JIT 调试器告诉我我无法解决这个问题。

这是我尝试过的最后一件事:

public ExpenseItem TripFind(string trip)
    {
        var specificExpenseItem =
           from e in this
           where e.Trip == trip
           select e;
        foreach (var e in specificExpenseItem);
        return null;
    }

有什么帮助吗?

选择组合框时,将所有匹配的值返回到列表框

你可以用

return this.FirstOrDefault(e => e.Trip == trip);