我正在开发一个ASP.NET MVC(旧版本)应用程序,我有一个表单,根据主要代码和学生姓氏的字母顺序为学生分配顾问.
我正在尝试实现以下代码,但它向&操作员显示红色涂鸦:
错误:运算符'&'不能应用于'
System.Linq.IQueryable<Appointments.Models.MajorAdviserStudentAssignmentByAlpha>'和'lambda表达式'和'lambda表达式' 类型的操作数
var majorAssignmentByAlpha = FindAllMajorAdviserStudentAssignmentByAlphas()
.Where(
a => a.MajorString == student.StudentMajor) &
(a => ((String.Compare(student.StudentLastName, a.AlphaStart) >= 0) &
(String.Compare(student.StudentLastName, a.AlphaEnd) <= 0))
.FirstOrDefault());
if (majorAssignmentByAlpha != null)
return majorAssignmentByAlpha.Adviser;
Run Code Online (Sandbox Code Playgroud)
我很感激任何帮助,以了解这里有什么问题.提前致谢!
我想在这里补充修正:其实两者&& 并 & 都在C#中的布尔操作符(与使用时bool).然而,前者将进行短路评估:
考虑A && B,如果A是,false那么B将不会被评估,因为结果将是false无论什么是真实性B.
对于你得到的错误,可能是因为你的&运算符正在比较一个布尔表达式和一个lambda表达式(函数).试试这个
MajorAdviserStudentAssignmentByAlpha majorAssignmentByAlpha = FindAllMajorAdviserStudentAssignmentByAlphas().FirstOrDefault(
a => a.MajorString == student.StudentMajor & String.Compare(student.StudentLastName, a.AlphaStart) >= 0 &
String.Compare(student.StudentLastName, a.AlphaEnd) <= 0);
if (majorAssignmentByAlpha != null)
return majorAssignmentByAlpha.Adviser;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30024 次 |
| 最近记录: |