[英]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.