gpt4 book ai didi

c# - 尝试获取集合中的第一项返回 NULL

转载 作者:行者123 更新时间:2023-11-30 13:07:58 26 4
gpt4 key购买 nike

我以前使用存储过程进行大量开发来完成所有数据修改。

但我现在需要使用 LINQ To SQL,而基本的基本任务让我感到难过。

我有一个名为 Book 的类(标题、作者等)。许多书籍被实例化并添加到公共(public) ObservableCollection 书籍

到目前为止一切顺利,我可以看到它的收藏中包含有效书籍。

我有一个函数 DeleteOldestBook(),它只是获取 Books 中的第一本书,然后删除。这是我遇到麻烦的地方。

我试着选择

Book BookToDelete = Books.Take(1) as Book;

但它总是返回 NULL。

我有一个 hacky 解决方法:

var AllBooks = from BookToDelete in Books select BookToDelete;
foreach (Book BookToDelete in AllBooks)
{
// BookToDelete.dostuff takes place ...
break; // only do 1
}

但这太糟糕了,我知道我错过了一些简单的事情。

LINQ 专家有什么想法吗?如果您需要更多代码,请告诉我。

提前致谢

最佳答案

Take()返回 IEnumerable<Book> .因此,您尝试将其转换为 Book失败,返回空值。

使用 Books.First()Books.FirstOrDefault()相反。

对吹毛求疵者的澄清:Take()实际上可能会返回 IQuerable<Book>如果Books直接来自DataContext .

关于c# - 尝试获取集合中的第一项返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9524415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com