C# 如何在linq条件下匹配列表值?
如何在linq条件下匹配列表值 我有一个ID列表,所以这些ID必须在条件上匹配,并从一个表中获取数据C# 如何在linq条件下匹配列表值?,c#,asp.net-mvc,entity-framework,linq,C#,Asp.net Mvc,Entity Framework,Linq,如何在linq条件下匹配列表值 我有一个ID列表,所以这些ID必须在条件上匹配,并从一个表中获取数据 public ActionResult StudentSelect( long? CompanyId, long? CompanyLocationId, long? ClassId, long? SectionId, long? AcademicId, long? ExamId) //) //long? SectionId) 下面是学生注册ID的
public ActionResult StudentSelect(
long? CompanyId,
long? CompanyLocationId,
long? ClassId,
long? SectionId,
long? AcademicId,
long? ExamId) //) //long? SectionId)
下面是学生注册ID的列表
{
var RegId = (
from a in db.Student_Marks_Percentage
where a.Delete_Flag == false &&
a.Exam_Id == ExamId &&
a.Academic_Year_Id == AcademicId &&
a.Class_Id == ClassId
select a.Registration_Id)
.ToList();
List<StudentList> Student = new List<StudentList>();
if (AcademicId != null &&
CompanyId != null &&
CompanyLocationId != null &&
ClassId == null &&
SectionId == null) //&& )//&& ClassId != null) //)
{
Student = (
from a in db.Student_Re_Admission
join b in db.Student_Registration on a.Registration_Id equals b.Registration_Id
join c in db.Student_Roll_No_Assign on a.Registration_Id equals c.Registration_Id
where c.Academic_Year_Id == AcademicId &&
c.Company_ID == CompanyId &&
c.COMPANY_LOCATION_ID == CompanyLocationId &&
a.Academic_Year_Id == AcademicId &&
c.Class_Id == ClassId &&
a.Class_Id == ClassId &&
a.Section_Id == SectionId &&
c.Section_Id == SectionId &&
我试着像下面一样,但得到了相同的学生名单数据
var merged = new List<StudentList>(Student);
merged.Except(Student.Where(p2 => RegId.Exists(p1 => p2.Registration_Id != p1.Registration_Id)));
var合并=新列表(学生);
合并。除了(Student.Where(p2=>RegId.Exists(p1=>p2.Registration\u Id!=p1.Registration\u Id));
我想您只需要更换a.Registration\u Id!=RegIds
带有:
!RegIDs.Contains(a.Registration_Id)
我想你只需要更换
a.Registration\u Id!=RegIds
带有:
!RegIDs.Contains(a.Registration_Id)
第一个必须进行比较的变量列表
var RegId = (from a in db.Student_Marks_Percentage
where a.Delete_Flag == false
&& a.Exam_Id == ExamId
&& a.Academic_Year_Id == AcademicId
&& a.Class_Id == ClassId
select a).ToList();
必须获取数据的第二个列表
List<StudentList> Student = new List<StudentList>();
if (AcademicId != null && CompanyId != null && CompanyLocationId != null && ClassId == null && SectionId == null) //&& )//&& ClassId != null) //)
{
Student = (from a in db.Student_Re_Admission
join b in db.Student_Registration on a.Registration_Id equals b.Registration_Id
join c in db.Student_Roll_No_Assign on a.Registration_Id equals c.Registration_Id
where c.Academic_Year_Id == AcademicId && c.Company_ID == CompanyId && c.COMPANY_LOCATION_ID == CompanyLocationId
&& a.Academic_Year_Id == AcademicId && c.Class_Id == ClassId && a.Class_Id == ClassId
&& a.Section_Id == SectionId && c.Section_Id == SectionId
//&& a.Registration_Id != RegId.Contains(a.Registration_Id)
&& a.Promoted == false && a.Delete_Flag == false
//a.Academic_Year_Id == AcademicId && a.Company_ID == CompanyId && a.COMPANY_LOCATION_ID == CompanyLocationId
select new StudentList()
{
Registration_Id = a.Registration_Id,
Admission_No = a.Admission_No,
Student_First_Name = a.Student_First_Name,
Student_Middle_Name = a.Student_Middle_Name,
Student_Last_Name = a.Student_Last_Name,
Set_Roll_No = c.Set_Roll_No,
Roll_Id = c.Roll_Id
}).OrderBy(a => a.Registration_Id).ToList();
}
第一个必须进行比较的变量列表
var RegId = (from a in db.Student_Marks_Percentage
where a.Delete_Flag == false
&& a.Exam_Id == ExamId
&& a.Academic_Year_Id == AcademicId
&& a.Class_Id == ClassId
select a).ToList();
必须获取数据的第二个列表
List<StudentList> Student = new List<StudentList>();
if (AcademicId != null && CompanyId != null && CompanyLocationId != null && ClassId == null && SectionId == null) //&& )//&& ClassId != null) //)
{
Student = (from a in db.Student_Re_Admission
join b in db.Student_Registration on a.Registration_Id equals b.Registration_Id
join c in db.Student_Roll_No_Assign on a.Registration_Id equals c.Registration_Id
where c.Academic_Year_Id == AcademicId && c.Company_ID == CompanyId && c.COMPANY_LOCATION_ID == CompanyLocationId
&& a.Academic_Year_Id == AcademicId && c.Class_Id == ClassId && a.Class_Id == ClassId
&& a.Section_Id == SectionId && c.Section_Id == SectionId
//&& a.Registration_Id != RegId.Contains(a.Registration_Id)
&& a.Promoted == false && a.Delete_Flag == false
//a.Academic_Year_Id == AcademicId && a.Company_ID == CompanyId && a.COMPANY_LOCATION_ID == CompanyLocationId
select new StudentList()
{
Registration_Id = a.Registration_Id,
Admission_No = a.Admission_No,
Student_First_Name = a.Student_First_Name,
Student_Middle_Name = a.Student_Middle_Name,
Student_Last_Name = a.Student_Last_Name,
Set_Roll_No = c.Set_Roll_No,
Roll_Id = c.Roll_Id
}).OrderBy(a => a.Registration_Id).ToList();
}
你能解释一下结果是什么吗。您所说的id列表有点不清楚是第一个(Reg)查询的结果还是where子句中唯一的id?我想要一个结果:获取不应包含var RegId listsplz注册id的数据现在查看我更新的上一个。您能解释一下除了结果之外还有什么吗。您提到的id列表有点不清楚是第一个(Reg)查询的结果还是where子句中的唯一id?我想要一个结果:获取不应包含var RegId listsplz的RegistrationId的数据现在查看我更新的最后一个。in contains(Registration_id)什么是“Registration_id”?抱歉,我忘了
a.
部分。现在有意义吗?获取编译时错误:错误227“System.Collections.Generic.List.Contains(Model.Student\u Marks\u Percentage)”的最佳重载方法匹配项包含一些无效参数(Registration\u Id)“Registration\u Id”是什么?抱歉,我忘记了a.
部分。现在有意义了吗?获取编译时错误:错误227“System.Collections.Generic.List.Contains(Model.Student\u Marks\u Percentage)”的最佳重载方法匹配具有一些无效参数