2014-02-06 2 views
0

를 사용하여 두 목록 사이의 차이를 점점하지 않습니다.다음과 같이 나는이 개 목록이 LINQ

FinalSeparatedEmployees = SeparatedEmployees.Except(ConfirmedEmployees).ToList<HRM_EMP_FINL_STMT_MSTModel>(); 

그러나 정확한 결과를 얻고 있지 :

var FinalSeparatedEmployees = (from item in SeparatedEmployees 
             where !ConfirmedEmployees.Contains(item) 
             select item).ToList(); 

도이 일을 시도. 내가 뭘 놓치고있어? 감사.

답변

1

개체가 비교할 수 없기 때문에 EMP_CODE를 사용하는 것이 좋습니다.

var ids = ConfirmedEmployees.Select(x => x.EMP_CODE).ToList(); 
var FinalSeparatedEmployees = (from item in SeparatedEmployees 
            where !ids.Contains(item.EMP_CODE) 
            select item).ToList(); 
+0

어떻게 작동합니까? 두 모델 모두에서 같은 모델을 반환 했지? –

+1

예,하지만 C#은 비교할 속성을 알지 못합니다. 해당 경로로 이동하려면 이러한 속성을 사용하여 클래스를 정의하고 IEquatable 을 구현 한 다음 선택 항목에 해당 클래스의 인스턴스를 만듭니다. – nima

+0

설명 주셔서 감사합니다. 이제 알았어. –