Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
linq中的If语句_Linq - Fatal编程技术网

linq中的If语句

linq中的If语句,linq,Linq,是否可以在此linq查询中包含if语句…例如,如果viewModel.Sessionstateadminroot.CourseSearchPara==null不使用where子句,只需获取所有记录 viewModel.Courseroot = (from course in container.Courses where course.Description == viewModel.Sessionstateadm

是否可以在此linq查询中包含if语句…例如,如果viewModel.Sessionstateadminroot.CourseSearchPara==null不使用where子句,只需获取所有记录

 viewModel.Courseroot = (from course in container.Courses
                                        where course.Description == viewModel.Sessionstateadminroot.CourseSearchPara
                                        orderby course.Name descending
                                        select new Course_() { Name = course.Name, Description = course.Description, Guid = course.Guid, CourseID = course.CourseID }).Skip((int)skip).Take(take).ToList();

您可以使用
|
操作符:

viewModel.Courseroot = (from course in container.Courses
                                        where viewModel.Sessionstateadminroot.CourseSearchPara == null
                                        || course.Description == viewModel.Sessionstateadminroot.CourseSearchPara
                                        orderby course.Name descending
                                        select new Course_() { Name = course.Name, Description = course.Description, Guid = course.Guid, CourseID = course.CourseID }).Skip((int)skip).Take(take).ToList();
由于
|
运算符短路,如果第一部分为真,则第二部分将不会被计算

或者,您可以逐步构造查询:

IEnumerable<Course> query = container.Courses;
if (viewModel.Sessionstateadminroot.CourseSearchPara != null)
    query = query.Where(course => course.Description == viewModel.Sessionstateadminroot.CourseSearchPara)
viewModel.Courseroot = query
    .Select(course => new Course_() { Name = course.Name, Description = course.Description, Guid = course.Guid, CourseID = course.CourseID })
    .Skip((int)skip)
    .Take(take)
    .ToList();
IEnumerable query=container.Courses;
if(viewModel.Sessionstateadminroot.CourseSearchPara!=null)
query=query.Where(课程=>course.Description==viewModel.Sessionstateadminroot.CourseSearchPara)
viewModel.Courseroot=query
.Select(course=>newcourse\({Name=course.Name,Description=course.Description,Guid=course.Guid,CourseID=course.CourseID})
.Skip((int)Skip)
.拿(拿)
.ToList();