首页 > 解决方案 > 无法从 System.Collection.Generic.List 转换给 Dal.Questio

问题描述

我想将我的列表附加到另一个列表中,但是当我这样做时,我得到了错误

如何解决?

public List<Questio> Get(int Id)
{
    List<Questio> Quest;
    Quest = null;
    try
    {
        using (db = new Entities())
        {
            var Qu = db.Que.Where(x => x.Lan == Id).Select(i => i.Id);

            foreach (var a in Qu)
            {
                var ID = db.Quess.Where(x => x.QueId == a).Select(i => i.Qued);

                foreach (var j in ID)
                {
                    var vv = db.Questio.Where(m => m.QId == j).ToList();
                    Quest.Add(vv);
                }
            }
        }
    }
}

标签: c#linq

解决方案


你只需要使用AddRange接受IEnumerable

Quest.AddRange(vv);

Add仅用于添加单个项目。

如果您实际需要的是列表列表,则以Quest不同方式声明:

List<List<Questio>> Quest = new List<List<Questio>>();
...

var vv = db.Questio.Where(m => m.QId == j).ToList();
Quest.Add(vv);    

现在您的电话Add应该可以正常工作。

两个旁注,都超出了问题的范围:1)正如评论所说,请检查您的命名;2) 可以使用更多 LINQ 功能简化此代码,例如 Join 和 SelectMany。


推荐阅读