簡體   English   中英

選擇組合框后,將所有匹配的值返回到列表框

[英]Return all matching values to a listbox upon combo box selection

我有一個帶有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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM