LinQ的显式问题

时间:2011-02-02 21:14:52

标签: c# linq

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>'。   存在显式转换(是你   错过演员?)

问题:
我该如何解决这个问题?

// Fullmetalboy

1 个答案:

答案 0 :(得分:4)

您需要修改查询以返回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#中的类名在开头写有大写字母。