C# 无法从System.Collection.Generic.List转换<;Dal.Questio>;去达尔。奎斯蒂奥

C# 无法从System.Collection.Generic.List转换<;Dal.Questio>;去达尔。奎斯蒂奥,c#,linq,C#,Linq,我想将我的列表附加到另一个列表中,但当我这样做时,我得到了错误 怎么解决呢? 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

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

怎么解决呢?

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);
                }
            }
        }
    }
}
公共列表获取(int-Id)
{
列表任务;
Quest=null;
尝试
{
使用(db=new Entities())
{
var Qu=db.Que.Where(x=>x.Lan==Id);
foreach(在Qu中的变量a)
{
var ID=db.Quess.Where(x=>x.QueId==a)。选择(i=>i.Qued);
foreach(ID中的var j)
{
var vv=db.Questio.Where(m=>m.QId==j.ToList();
任务添加(vv);
}
}
}
}
}

您只需使用接受
IEnumerable
AddRange

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);    
List Quest=newlist();
...
var vv=db.Questio.Where(m=>m.QId==j.ToList();
任务添加(vv);
现在您对
Add
的调用应该可以正常工作了


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

列表是用
添加的。AddRange
不是
。Add
此代码有很多错误。你什么也不退。
Quest
变量从未初始化,因此将引发空引用异常
vv
是可枚举项,而不是单个项。等等,等等,你到底想让这段代码做什么?我相信有一个更简单的方法。请,请,修改你的变量命名。你的代码看起来像字母汤。不过,正如在其他评论中提到的那样,修复程序。@SiavashRostami您的意思是您不知道
Quest
Qu
a
j
Quess
Questio
?@DavidG读了这些名字后,有点忘了如何拼写我的名字了。我仍然需要将Quest初始化为null,因为我遇到了以下错误:无法将System.collection.generic.list转换为System.collection.generic.IEnumerable…@JoeSmith,不,不是null。您想将其初始化为空集合,而在使用列表中,我正在使用unassigned var error如何将其初始化为空collection@JoeSmith,注意这个
=newlist()我在答案中有吗?这是正确初始化任务的方法