그래서 나는 별개의 데이터 세트를 선택해야 내 LINQ 코드에 문제가, 내가 IEqualityComparer
다음 구현이 맥락에서LINQ - Distinct가 무시됩니까?
public class ProjectRoleComparer : IEqualityComparer<ProjectUserRoleMap>
{
public bool Equals(ProjectUserRoleMap x, ProjectUserRoleMap y)
{
return x.RoleID.Equals(y.RoleID);
}
public int GetHashCode(ProjectUserRoleMap obj)
{
return obj.GetHashCode();
}
}
을, 나는 관련 ProjectUserRoleMap
개체의 무리를 검색 할 ID로 식별되는 특정 프로젝트, 고유 한 RoleID
당 하나만 ProjectUserRoleMap
을 지정하지만 RoleID
에서 고유 선택을 수행하라는 엄격한 지침은 무시됩니다. 나는 이것이 왜 그런지에 대해 완전히 단서가 있으며 해결 방법을 생각하기에 충분할만큼 LINQ를 이해하지 못한다. 내가 원하는 알고 항목의 수는 단지 4 내가 LINQ의 내 사용량이 뭔가 잘못하고 있습니까 때
ProjectRoleComparer prCom = new ProjectRoleComparer();
IEnumerable<ProjectUserRoleMap> roleList = ProjectData.AllProjectUserRoleMap.Where(x => x.ProjectID == id).Distinct(prCom);
이 코드는 나에게 6 개 항목을 제공합니다, 다음은 호출 코드는? 참고로
는 ProjectUserRoleMap
객체는
우와! 너무 간단! 나는 그것을 어떻게 놓쳤는가? 의도 한대로 완벽하게 작동합니다. 고마워요! –
비교의 작은 수업에 감사드립니다. –
@FelixWeir : 환영합니다 :) –