我有多个选择语句获取结果作为列表,我需要添加这个列表最后绑定到下拉列表。这就是我目前正在做的事情。
public void load()
{
try
{
using (DataContext db = new DataContext())
{
var cm = (from c in db.COMPANY_MASTERs
select c).FirstOrDefault();
if (Convert.ToBoolean(cm.PLANT))
{
var Div = (from vp in db.PLANT
select new
{
ID = vp.PLANT_ID,
NAME = vp.PLANT_NAME
}).ToList();
}
if (Convert.ToBoolean(cm.ANIMAL))
{
var Dep = (from vp in db.ANIMAL
select new
{
ID = vp.ANIMAL_ID,
NAME = vp.ANIMAL_NAME
}).ToList();
}
//this is what I am trying to do but cant,since the variables are nested inside if.
Div.AddRange(Dep);
ddl.DataTextField = "NAME";
ddl.DataValueField = "ID";
ddl.DataSource = Div;
ddl.DataBind();
}
这是我的问题,
1。
如何克服这个匿名类型错误并将添加的列表绑定到下拉列表?谢谢
选择时,创建Variable
类型的新实例,而不是匿名选择:
var Div = (from vp in db.PLANT
select new Variable()
{
ID = vp.PLANT_ID,
GENDER = vp.PLANT_NAME
}).ToList();
然后对Dep变量做同样的操作:
var Dep = (from vp in db.ANIMAL
select new
{
ID = vp.ANIMAL_ID,
GENDER = vp.ANIMAL_NAME
}).ToList();
你就能得到AddRange()
编辑:你的变量需要在同一范围内一起使用。您应该在函数的顶部声明它们(强类型)。(由于andrii.litvinov)
List<Variable> Div;
List<Variable> Dep;
您可以初始化lstVar
并使用连续的foreach
循环添加其他两个列表的内容
除了Gabriel GM答案之外,还应该在if之前声明变量