2009-12-20 4 views
2

이 질문은 다음에 이어집니다. link text 제목에서 다시 방문하십시오. 나는 원래의 질문 아래에 만들어진 대답과 논평으로 새로운 질문으로 제기했다. 두 질문 모두 조인 쿼리에 사용 된 equals 키워드가 비교 내에서만 값 유형을 참조한다고 제안한다. 나는 이것이 다음과 같이 오도 된 것이라고 생각한다.Linq 'equals'키워드 Revisited - 객체에 대한 값과 참조를 비교합니까?

기본 동등 비교자를 사용하여 키순 조회를 사용하여 키를 비교합니다. 조인은 Enumerable.Join에 구현되고 키는 값 또는 참조가 될 수 있습니다.

다른 답변에는 POCO를 사용한 예가 포함되어 있습니다. 나는 Join이 Linq에서 Primary Key에 대해 Sql로 사용되는 것으로 가정 할 수 있는데, 이는 이들이 종종 단순한 값 유형이기 때문에 혼란이 발생한 곳이기 때문입니다.

그래서 equals는 값과 객체에 대한 참조를 비교합니까?

내가 잘못 했습니까?

답변

2

질문에 진술 한 것처럼 equals 키워드는 EqualityComparer<T>.Default을 사용합니다. 따라서 EqualityComparer<T>.Default과 동일한 방식으로 비교합니다. 당신이 값으로 비교하려면

, 당신은 사람들이 값만 비교에 래치 이유 난 그냥 이해할 수 없었다 내 생각을 확인 IEquatable<T>

+0

감사를 구현할 수 있습니다. 나는이 질문을 잠시 동안 남겨두고 다른 대답이 있는지 알아 보겠습니다. 그러나 +1은 지금 감사합니다. – Andrew

관련 문제