2016-05-20 13 views
0

私のコードに2つのリストを作成しました。一つは、彼らのインデックスに続いて、従業員の姓と名の長いリストが含まれています1つのリストから特定の値を.NETの別のリストに追加する方法

public List<Employee> FindTestEmployees() 
    { 
     var results = SubmitQuery([email protected]"(Select distinct(E.Badge_Sys_No), E.Emp_Id, E.Last_Nm, E.First_Nm,e.emp_job_func_cd 
           From Employee E, Employee_Job_Func Ef, Emp_Job_Function_Group_Asgnmt Ejfga 
           Where ....."); 
     var EmployeeList = new List<Employee>(); 
     for (var i = 0; i < results.Rows.Count; i++) 
     { 
      var employee = new Employee(); 

      employee.FirstName = results.Rows[i][3].ToString(); 
      employee.LastName = results.Rows[i][2].ToString(); 
      employee.Index = i; 
      EmployeeList.Add(employee); 

      EmployeeList.Add(employee); 
     } 
     return EmployeeList; 
    } 

第二は、以前に彼らのために生成されたレポートを持っている従業員の短いリストです。このリストには、従業員の姓と名が含まれています

public List<Employee> FindIPCREmployees() 
    { 
     var results = SubmitQuery([email protected]"(Select E.first_nm, e.last_nm, Ejfga.Emp_Job_Function_Group_Cd, 
           e.emp_job_func_cd 
           From Interaction I, Interaction_Activity Ia, Appointment A, Branch B, 
           Employee E, Employee_Job_Func Ef, Emp_Job_Function_Group_Asgnmt Ejfga 
           Where .....)"); 


     var IPCREmployeesList = new List<Employee>(); 
     for (var i = 0; i < results.Rows.Count; i++) 
     { 
      var employee = new Employee(); 
      employee.FirstName = results.Rows[i][0].ToString(); 
      employee.LastName = results.Rows[i][1].ToString(); 
      IPCREmployeesList.Add(employee); 
     } 
     return IPCREmployeesList; 
    } 

私は第二のリストから、従業員の姓と名が含まれています3番目のリストと、その特定のインデックスを作成されてやろうとしています最初のリストから従業員。重要な部分は、従業員の名前によるリスト間のリンクです。 .NETでこれを行う方法はありますか?もしそうなら、私は本当に助けに感謝します。私はあなたを信じて

答えて

0

私は最終的にあなたが正しく探しているリスト作成していますと仮定:finalListは、Employeeオブジェクトのコレクションになります。この場合

var employeeList = FindTestEmployees(); 
var secondList = FindIPCREmployees(); 
var finalList = employeeList.Join(secondList, a => new {a.FirstName, a.LastName}, b => {b.FirstName, b.LastName}, (a,b) => a); 

を2番目のリストに一致する姓と名を持つエントリを持つ最初のリストから削除します。 .NETがあなたの時間を費やしているなら、LINQと良い友達になることをお勧めします。

+0

これは動作するようです。助けてくれてありがとう。私はLINQの機能を将来もっと熱意を持って調べなければなりません! – dylan396

+0

うれしい私は助けることができました! LINQは.NETのコレクションを管理するための素晴らしいツールです。十分にお勧めできません。それは間違いなく学習に値する何かです! – DevNoob

0

が必要Dictionary<Employee,int>

Dictionary<Employee,int> dict=new Dictionary<Employee,int>(); 

foreach (var employee in IPCREmployeesList) 
{ 
    dict.Add(employee,EmployeeList.IndexOf(employee)); 
}