ArgumentException - 值不在预期范围内。在列表中搜索值时

时间:2017-04-17 08:34:16

标签: c# list search windows-runtime argumentexception

我试图通过按列表搜索列表来从列表中获取项目。 我有书籍列表,我有书名,作者,流派等的搜索选项。

我从老师那里得到的搜索方法,这不是我自己的。 我断断续续地看到它有效,而且确实如此。 它认出了我想要的财产,我正在搜索它,但当我想显示这本书及其所有信息时,我得到一个例外“价值不在预期的范围内”。

这是我正在使用的搜索方法:

    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);
        }

    }

0 个答案:

没有答案