LinQ 的显式问题
Posted
技术标签:
【中文标题】LinQ 的显式问题【英文标题】:Explicit problem with LinQ 【发布时间】:2011-02-02 21:14:51 【问题描述】:this previous question:的后续行动
当前代码:
var query = from b in books
select new
Title = b.Title,
StockAvailable = bookexamples.Count(be =>
be.BookID == b.BookID &&
be.OrderDetailID == null
)
;
目标:
将 query
替换为应包含来自 LINQ 查询的强类型数据的 IEnumerable<test>
。
public class test
public string Title get; set;
public List<int> StockAvailable get; set;
问题: 收到错误消息:
错误 1 无法隐式转换类型
'System.Collections.Generic.IEnumerable<AnonymousType#1>'
到'System.Collections.Generic.IEnumerable<BokButik1.Models.test>'
。 存在显式转换(您是 缺少演员表?)
问题: 我该如何解决这个问题?
// 全金属男孩
【问题讨论】:
编辑澄清我认为你想问什么。 【参考方案1】:您需要修改查询以返回test
对象(目前,它正在返回异常对象)。
var query = from b in books
select new test()
Title = b.Title,
StockAvailable = bookexamples.Count(be =>
be.BookID == b.BookID &&
be.OrderDetailID == null
)
;
您需要调整StockAvailable
以表示int
,因为Count
返回一个int。
另外,请注意,C# 中的类名以大写字母开头。
【讨论】:
类名在 C# 中由 convention 而非 rule 以大写字母书写。没有什么强迫你这样做,但仍然是很好的建议。 @FullmetalBoy 和@Femaref:在原始答案中编写了代码后,鉴于您的新要求,我同意此修改。这当然是我会做的。 +1。 感谢大家的帮助!有没有一本书或一个网站我可以阅读更多关于 c# 的经验法则的信息,例如“类名在 C# 中用大写字母编写”?以上是关于LinQ 的显式问题的主要内容,如果未能解决你的问题,请参考以下文章