public Student[] Students{get;set;}
public string Name {get;set;}
public string FatherName {get;set;}
public string Message{get;set;}
public bool Invalid{get;set;}
public static void Validate(bool checkFixValues){
var jobCodeAndOrgUnitDefault = new School(){ Students = new [] { new Student(){ Name="Bob", FatherName="David"}, new Student(){ Name="Jack", FatherName="Sparrow"}, new Student(){ Name="s", FatherName="Khan"}} };
var EmpValues = new School(){ Students = new [] { new Student(){ Name="Bob ", FatherName="David"},new Student(){ Name="Bob", FatherName=""}, new Student(){ Name="Jack", FatherName=""}, new Student(){ Name="Jack", FatherName=""}} };
var ss= EmpValues.Students.GroupJoin(jobCodeAndOrgUnitDefault.Students,
ej => new {Name=ej.Name.Trim(), FName=ej.FatherName.Trim()},
jd =>new {Name= jd.Name.Trim(), FName=jd.FatherName.Trim()},
(e,j) => new { EmpJobCode = e, JobCodeDef = j }) .SelectMany(
valid => valid.JobCodeDef.DefaultIfEmpty(),
(x,y) => new { EmpJobCode = x.EmpJobCode, JDef = y })
if((checkFixValues ? s.EmpJobCode.Invalid : true)
s.EmpJobCode.Message= "Invalid" ;
s.EmpJobCode.Invalid=true;}
foreach(var student in ss){
Console.WriteLine(student.Name+student.Message);
public static void Main()
new School(){ Students = new [] { new Student(){ Name="Bob", FatherName="David"}, new Student(){ Name="Jack", FatherName="Sparrow"} }},
new School(){ Students = new [] { new Student(){ Name="Bob", FatherName="David"}, new Student(){ Name="Jim", FatherName="Brown"}, new Student(){ Name="John", FatherName="David"} }}
var allStudents = schools.SelectMany(s=> s.Students);