我尝试了这段代码来将b
添加到books
中:
IEnumerable<Book> books =null;
foreach (Book b in context.Books.AsEnumerable())
if (someConditions)
books = books.Concat(new[] {b});
但在代码的最后一行给了我这个错误:
System.ArgumentNullException:值不能为空。 参数名称:first
似乎无法将 null
的 Collection
进行拼接。我正在使用EF,那么我该如何初始化我的 Collection
,使其不包含任何内容,而且我可以将其他内容连接到它上面?
IEnumerable<Book> books = Enumerable.Empty<Book>();
- Vyacheslav Volkovvar books = context.Books.Where(b=> condition(b)).ToList();
- DamithBook[]
的长度为1的数组来创建IEnumerable<Book>
仍然非常低效且有些丑陋。考虑使用Linq中的Where
进行书籍过滤,就像@Damith的评论中所示,或者重写循环以使用yield return b;
(将此循环提取到一个新方法中,一个称为迭代器块的东西)。 - Jeppe Stig Nielsen