我有一个List lstStudents = GetStudents()//这个方法可以返回null。 现在我正在尝试在我的数据库表学生
上运行此查询var result = (from c in student
where lstStudents.Contains(c.name)
select c);
如何检查查询中的lstStudents是否为空。
注意:我知道我可以在运行此查询之前检查它,但由于某些其他原因我无法执行此操作。如果我在查询中尝试(lstStudents!= null),则会出错。
无法比较类型的元素 ' System.Collections.Generic.List`1 [[System.String,mscorlib, Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089]]'。 只有原始类型,枚举类型和实体类型 支撑。
感谢任何帮助。
答案 0 :(得分:0)
public List<string> GetStudents()
{
return null;
}
private void button1_Click(object sender, EventArgs e)
{
using(var ed = new DataClasses1DataContext())
{
List<string> lstStudents = GetStudents();
var tst =
(from c in ed.Baleni
where (lstStudents ?? new List<string>()).Contains(c.b_poznamka)
select c)
.ToList();
}
}
.net 4.0.0.0,没有问题(我只在我的数据库中使用了不同的表)。
答案 1 :(得分:-1)
这应该有效
var result = db.users.Where(x=> list != null && list.Any(a=>
a.Contain(x.Email)));