我有以下代码:
int selectedcourseId = Convert.ToInt32(c1.Text);
var cid = (from g in re.Sections where g.CourseID == selectedcourseId select g.CourseID);
int selectedinstructorid = Convert.ToInt32(c2.Text);
var iid = (from u in re.Sections where u.InstructorID == selectedinstructorid select u.InstructorID);
我想在if语句中将两个(selectedcourseId)与(cid)和(selectedinstructorid)与(iid)进行比较,例如:
if (selectedcourseId = cid && selectedinstructorid = iid)
{
MessageBox.Show("it already exists");
}
我已经尝试了许多行不通的事情,因为我的知识有限。非常感谢您的任何评论或回答
您可以将代码更改为:(但是检查您的情况没有意义)
if (selectedcourseId == cid.First() && selectedinstructorid == iid.First())
首先,必须在if语句中检查相等性==
,而不是=
。第二个是IQueryable<T>
允许您针对特定数据源执行查询,但是它使用了延迟执行。要根据您的情况执行它,可以使用First()
。
但是,我建议您只是在学习如何使用LINQ,因此您已经编写了这段代码。
我不知道您要达到什么目标。但是,如果要搜索该ID是否有任何结果,则必须使用Any()
:
var result1 = from g in re.Sections where g.CourseID == selectedcourseId select g.CourseID;
var result2 = from u in re.Sections where u.InstructorID == selectedinstructorid select u.InstructorID;
if(result1.Any() && result2.Any()) { ... }
或者,如果您要查找是否有指定了CourseID
和的行InstructorID
,则可以调用以下行Any()
:
if(re.Sections.Any(x => x.CourseID == selectedcourseId && x.InstructorID == selectedinstructorid))
{ ... }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句