有人可以告诉我我的Type或linq查询有什么问题

时间:2014-07-10 08:52:15

标签: c# linq list

我希望有人可以提供帮助,我的错误是

  

无法将system.collections.generic.List类型隐式转换为xxxlistlitems

我有这个

public IDListItems getIDList()
{
    IDListItems items = new IDListItem();
    try
    {
        var x = (from c in db.ap_GetIDListItems()
               select new IDListItems { CId = c.CID, Id = c.ID }).ToList();
        items = x;
    }
    catch (Exception ex)
    {
        throw ex;
    }
    return items;   
}

然后我有一个这样的课程

namespace SaSs
{
    public class IDListItems 
    {
        public int Id {get; set;}
        public string CId { get; set; }
    }
}

我认为这是我的返回类型的一个问题,但我不确定该类型如何返回列表

5 个答案:

答案 0 :(得分:3)

呃...因为物品不是清单?

List<IDListItems> items = new List<IDListItem>();

应该做的伎俩..

答案 1 :(得分:3)

其他人建议改变变量的类型 - 我建议完全删除变量,以及无意义的catch块。您确实需要更改返回类型:

public List<IDListItems> getIDList()
{
    return (from c in db.ap_GetIDListItems()
            select new IDListItems { CId = c.CID, Id = c.ID }).ToList();
}

或者没有一些毫无意义的查询表达式:

public List<IDListItems> getIDList()
{
    return db.ap_GetIDListItems()
             .Select(c => new IDListItems { CId = c.CID, Id = c.ID })
             .ToList();
}

答案 2 :(得分:1)

项目是IDListItems。您无法将IDListItems分配给List<IDListItems>

答案 3 :(得分:0)

尝试:

public List<IDListItems> getIDList()
{

    List<IDListItems> items = new List<IDListItems>();

    try
    {
        var x = (from c in db.ap_GetIDListItems()
                 select new IDListItems { CId = c.CID, Id = c.ID }).ToList();
        items = x;
    }

    catch (Exception ex)
    {
        throw ex;
    }
    return items;   
}

答案 4 :(得分:0)

你需要将它设置为像这样的列表

List<IDListItems> items = new List<IDListItem>();

这样的事情应该起作用

public List<IDListItems> GetIDList()
        {
            List<IDListItems> items = new List<IDListItems>();
        try
        {
            var x = (from c in db.ap_GetIDListItems()
                     select new IDListItems { CId = c.CID, Id = c.ID }).ToList();
            items = x;
        }

        catch (Exception ex)
        {
            throw ex;
        }
        return items;   
    }

如果您拨打GetIDList(),则还需要更改此设置。你还需要为此添加一个合适的catch语句。