我试图通过按列表搜索列表来从列表中获取项目。 我有书籍列表,我有书名,作者,流派等的搜索选项。
我从老师那里得到的搜索方法,这不是我自己的。 我断断续续地看到它有效,而且确实如此。 它认出了我想要的财产,我正在搜索它,但当我想显示这本书及其所有信息时,我得到一个例外“价值不在预期的范围内”。
这是我正在使用的搜索方法:
public AbstractItem Find(Func<AbstractItem, bool> condition)
{
AbstractItem result = null;
foreach (var item in List)
{
if (condition(item))
{
result = item;
break;
}
}
return result;
}
后来变成这样:(对于每个属性)
public AbstractItem FindByTitle(string title)
{
return Find((item) => item.Title == title);
}
我不知道为什么我得到这个例外。请帮帮我吧
谢谢你!所以这就是我将find方法的结果添加到ListView的方式:
private void btnSearch_Click(object sender, RoutedEventArgs e)
{
//search by title, author, year, genre
//if found by one parameter or several - show in listBox
if (!string.IsNullOrEmpty(tBoxSearchName.Text))
{
listViewSearchResult.ItemsSource = LibMng.FindByTitle(tBoxSearchName.Text);
}
if (!string.IsNullOrEmpty(tBoxSearchYear.Text))
{
listViewSearchResult.ItemsSource = LibMng.FindByYear(DateTime.Parse(tBoxSearchYear.Text));
}
if (!string.IsNullOrEmpty(tBoxSearchGenre.Text))
{
//listViewSearchResult.ItemsSource = LibMng.FindByGenre(tBoxSearchGenre.Text);
}
if (!string.IsNullOrEmpty(tBoxSearchAuthor.Text))
{
listViewSearchResult.ItemsSource = LibMng.FindByAuthor(tBoxSearchAuthor.Text);
}
}