나는 해시 가능 (hashable) 인 파이썬의 튜플 (또는, 집합, frozensets)의 라인을 따라 뭔가를 원한다.이 올바르게 해시되지 않았습니다 (즉, 값으로).어떻게 C# 목록을 해시 가능으로 변환 할 수 있습니까?
2
A
답변
3
등호 해시 - 같음 (GetHashCode 및 같음)에 대한 유용한 의미를 얻기 위해 자신의 컨테이너를 정의하고 목록을 래핑 할 수도 있습니다. 원하는 경우 래퍼를 IList에 맞게 만들 수도 있습니다.
변경 가능성 문제 및 해싱 사전에서 문제가되는 새로운 객체를 사용하는 GetHashCode/Equals 결과가 변경되지 않도록하려면 일종의 가드를 제공해야합니다 (생성시 입력 사본을 만들 수도 있습니다). 귀하의 유형) 및/또는 제약 사항을 문서화하십시오.
SequenceEqual을 사용하면 Equals를 다소 간단하게 구현할 수 있지만 관련 방법으로 GetHashCode를 구현해야합니다. 간단한 방법은 각 요소의 GetHashCode를 XOR하는 것입니다.
또는 하나의 사전에서 방금 사용하는 경우 사용자 지정 IEqualityComparer을 제공하고 포장 유형을 만들지 않도록 할 수 있습니다 (Dictionary constructor overload).
그것은 최종 목표는 아주 잘 이미
주 :-) 등의 포장 용기가 무엇인지 따라 달라 .NET4에서 같음 재정의 GetHashCode 및 Tuple<...> classes의 세트가있다. 이전 .NET 버전에 대한 타사 대안으로 cadenza을 참조하십시오.
관련 문제
- 1. 어떻게 일반 목록을 dataTable로 변환 할 수 있습니까?
- 2. 어떻게 문자열 목록을 숫자 값으로 변환 할 수 있습니까?
- 3. 키 값 쌍 목록을 해시 테이블로 변환
- 4. 개체 목록을 Java의 해시 맵으로 변환
- 5. Android : 문자열에서 편집 가능으로 변환 할 수 없습니다.
- 6. PHP 함수의 매개 변수 목록을 배열로 변환 할 수 있습니까?
- 7. 파이썬이 해시 가능으로 설정되지 않는 이유는 무엇입니까?
- 8. 어떻게 C# 코드를 MATLAB으로 변환 할 수 있습니까?
- 9. 이 linq.expression을 C#에서 VB로 어떻게 변환 할 수 있습니까?
- 10. 어떻게 C#에서 바이너리 모드로 파일을 변환 할 수 있습니까?
- 11. 어떻게 비트를 바이트로 변환 할 수 있습니까?
- 12. 어떻게 'System.Windows.Forms.Keys'로 'System.Windows.Input.Key'를 변환 할 수 있습니까?
- 13. 파이썬에서 어떻게 문자열을리스트로 변환 할 수 있습니까?
- 14. 어떻게 NSString을 NSDate로 변환 할 수 있습니까?
- 15. 어떻게 CodeVariableDeclarationStatement를 CodeAssignmentStatement로 변환 할 수 있습니까?
- 16. 어떻게 문자열 [] T로 변환 할 수 있습니까?
- 17. ASCII MD5 해시 암호를 유니 코드 MD5 해시 암호로 변환 할 수 있습니까?
- 18. 배열 목록을 문자열로 변환 할 수 없습니다
- 19. 절약 목록에서지도 목록을 반환 할 수 있습니까?
- 20. 어떻게 다른 일을하면서 Linq을 사용하여 목록을 구성 할 수 있습니까?
- 21. DependencyObject에서 파생 된 클래스를 직렬화 가능으로 표시 할 수 있습니까?
- 22. 오라클 "해시 그룹"이 어떻게 작동하는지 설명 할 수 있습니까?
- 23. Twitter : 관련 해시 태그 집합을 어떻게 구성 할 수 있습니까?
- 24. 어떻게 EF CodeFirst로 필드를 해시 또는 암호화 할 수 있습니까?
- 25. 어떻게 해시 안에 배열을 초기화 할 수 있습니까?
- 26. Perl의 DBI가있는 열에 어떻게 해시 값을 삽입 할 수 있습니까?
- 27. 어떻게 Perl의 함수 목록을 반복 할 수 있습니까?
- 28. R ...의 목록 목록을 어떻게 시각화 할 수 있습니까?
- 29. 어떻게 파이썬으로 목록을 만들 수 있습니까?
- 30. 해시 유형을 식별 할 수 있습니까?
우수, 많이 감사합니다! – gatoatigrado