2016-04-29 12 views
0

私は同じクラスタイプの2つのリストを持っています。1つのリストの1つのフィールド値を、別の1つのリストの別の同じフィールドに更新する方法はありますか?

List<CUSTOM_STU_DETAIL> StuList = new List<CUSTOM_STU_DETAIL>(); 
List<CUSTOM_STU_DETAIL> StuListforRollNo = new List<CUSTOM_STU_DETAIL>(); 

私は2つのテーブルから1つのリストを取得しています。

StuList = (from a in db.Student_Re_Admission 
          join b in db.Student_Registration on a.Registration_Id equals b.Registration_Id 

          where a.Academic_Year_Id == AcademicId && a.Company_ID == CompanyId 
          && a.COMPANY_LOCATION_ID == CompanyLocationId 
          && a.Class_Id == ClassID && a.Section_Id == SectionID 
          && a.Promoted == false && b.Delete_Flag == false 

          select new CUSTOM_STU_DETAIL 
          { 
           Registration_Id = a.Registration_Id, 
           Admission_No = a.Admission_No,        
           STUDENT_NAME = a.Student_First_Name + " "+a.Student_Middle_Name + " " + a.Student_Last_Name, 
           Class_Id = ClassID, 
           Section_Id = SectionID, 
           Academic_Year_Id = AcademicId, 
           Company_Id = CompanyId, 
           Company_Location_Id = CompanyLocationId 

           //RollNo = c.Set_Roll_No, 
          }).OrderBy(a => a.Admission_No).ToList(); 

ので、今賢明な最初のリストループで同じ条件で他のテーブルからいくつかの値を取得したい。..

foreach (var obj in StuList) 
       { 
        var rollNoRecord = db.Student_Roll_No_Assign.FirstOrDefault(a => a.Company_ID == obj.Company_Id && a.COMPANY_LOCATION_ID == obj.Company_Location_Id && a.Academic_Year_Id == obj.Academic_Year_Id && a.Class_Id == obj.Class_Id && a.Delete_Flag == false); 

        if (rollNoRecord != null) 
        { 
         data.RollNo = rollNoRecord.Set_Roll_No; 
        } 
        else 
        { 
         data.RollNo = string.Empty; 
        } 

        StuListforRollNo.Add(data); 


      } 

ので、今最初のリストにデータの「SetRollNo」フィールドのリストを挿入したいです'SetRolNo'フィールド。

私は以下のようにしようとしていますが、私が意味するものは得られません。

1) var listfinal = StuList.Concat(StuListforRollNo); 
    2) var listfinal = StuList.Union(StuListforRollNo); 
    3) var listfinal = StuList.AddRange(StuListforRollNo); 

すべてのデータをマージしている..あなたは、foreachループ内で値を変更していないのはなぜ

答えて

1

foreach (var obj in StuList) 
{ 
    var rollNoRecord = db.Student_Roll_No_Assign.FirstOrDefault(a => a.Company_ID == obj.Company_Id && a.COMPANY_LOCATION_ID == obj.Company_Location_Id && a.Academic_Year_Id == obj.Academic_Year_Id && a.Class_Id == obj.Class_Id && a.Delete_Flag == false); 

    if (rollNoRecord != null) 
    { 
      //data.RollNo = rollNoRecord.Set_Roll_No; 
      obj.RollNo = rollNoRecord.Set_Roll_No; 
    } 
    else 
    { 
      //data.RollNo = string.Empty; 
      obj.RollNo = string.Empty; 
    } 
    //StuListforRollNo.Add(data); 
} 
+0

ああthanq..Iは、そのロジックを取得できませんでした。 –